赞
踩
初始化:
cur
指向传入的节点 node
,即链表的头节点。prv
初始化为 NULL
,用于存储当前节点的前一个节点。循环反转:
while
循环中,当 cur
不为空时执行循环体。temp
暂存当前节点 cur
的 next
指针,防止丢失链表后续部分。next
指针指向前一个节点 prv
。prv
指向当前节点 cur
。cur
指向之前保存的下一个节点 temp
。返回新头节点:
cur
为 NULL
时,链表已完全反转,prv
指向反转后的新头节点。假设链表为:1 -> 2 -> 3 -> NULL
初始状态:
cur
指向 1
prv
为 NULL
第一次迭代:
temp
指向 2
(保存下一个节点)cur->next
指向 NULL
(反转指针)prv
指向 1
(前移指针)cur
指向 2
(前移当前节点)第二次迭代:
temp
指向 3
cur->next
指向 1
prv
指向 2
cur
指向 3
第三次迭代:
temp
指向 NULL
cur->next
指向 2
prv
指向 3
cur
指向 NULL
结束:
prv
,即新的头节点 3
最终链表变为:3 -> 2 -> 1 -> NULL
这个函数使用迭代的方法反转了一个单向链表。通过逐个节点的处理,将每个节点的 next
指针反转,最终得到反转后的链表。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。