需要用一个虚节点来保存
class Solution {
public ListNode reverseList(ListNode head) {
//头插法
ListNode dumpyHead = new ListNode();
//dumpyHead.next = head;
ListNode cur = head;
while(cur != null) {
//保存下一个节点
ListNode next = cur.next;
//断开链表
cur.next = null;
//上一个头节点
ListNode prev = dumpyHead.next;
// 新节点挂在虚拟头结点
dumpyHead.next = cur;
//当前头节点接上上一个头结点
cur.next = prev;
//指针移动
cur = next;
}
return dumpyHead.next;
}
}
使用虚拟头节点翻转链表
该博客介绍了一种利用虚拟头节点实现链表反转的方法。通过创建一个临时的虚拟头节点,将原始链表的节点逐个反转,最后返回虚拟头节点的下一个节点,即为反转后的链表头节点。这种方法避免了使用额外的指针来保存中间节点,简化了代码逻辑。

被折叠的 条评论
为什么被折叠?



