【理解链表指针赋值】链表中cur

您所在的位置:网站首页 C语言中next指针 【理解链表指针赋值】链表中cur

【理解链表指针赋值】链表中cur

2024-06-16 03:25| 来源: 网络整理| 查看: 265

最近在做链表的题目的时候,对于所定义的cur链表指针产生了一些疑惑,查阅资料后整理一下我的理解:

/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(nullptr) {} * }; */ ListNode *dummyHead = new ListNode(0); dummyHead->next = head; ListNode *cur = dummyHead;

首先要清楚的是,cur是一个指针,而不是链表的一个节点,对于链表[1,2,3,4],上面代码定义的头节点和cur指针的效果如下图: 在这里插入图片描述 此时cur =cur->next->next效果如下图: 在这里插入图片描述 cur存放head节点的地址; cur->next是head节点的next指针域存放的节点1的地址; cur->next->next是1节点的next指针域存放的节点2的地址; 所以cur =cur->next->next是把节点2的地址赋值给cur指针; 而cur->next = cur->next->next->next的效果如下图(相对于第一张图): 在这里插入图片描述 cur->next是head节点的next指针域存放的节点1的地址; cur->next->next->next是2节点的next指针域存放的节点3的地址; 所以cur->next =cur->next->next->next是把节点3的地址赋值给cur所指向的head节点的next指针域;

总结

对cur赋值不会改变原本的链表排布,对cur->next或cur->next->next等等赋值可能会改变链表排布

在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3