这段代码如何间接工作?

这段代码如何间接工作?,第1张

这段代码如何间接工作?

pnext是指向Node的指针的指针,用于保存

next
最后一个节点字段的地址

因此,第一行将指针设置为下一个节点(列表或上一个节点

node->next

第二行将pnext设置

next
为当前节点的字段

第三行在使用刚刚分配的pnext处理它的头部之后进行了list1的微优化,从而避免了再次引用list1

您还可以根据node-> next来编写它:

#define SWAP_PTRS(a, b) do { void *t = (a); (a) = (b); (b) = t; } while (0)Node* MergeLists(Node* list1, Node* list2) {  Node *list = NULL, *node ;  if (list2 == NULL)    return list1;  if (list1->data > list2->data)    SWAP_PTRS(list1, list2);  node=list=list1;  list1=list1->next;  while (list1 != NULL)  {    if (list1->data > list2->data)      SWAP_PTRS(list1, list2);    node->next = list1;    node = list1->next;     list1 = list1->next;       }  node->next = list2;  return list;}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5010642.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-14
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存