反转链表专项学习记录

变量名称定义 在开始反转链表套路学习前,先定义一组变量,这组变量会贯穿全部的题型: cur:指向当前正在进行反转的节点和反转完成后的下一个待反转链表的头部; pre:指向已完成反转链表的头部(头插法的缘故),初始值为nil(仅在 206 中是这样,其他情况下都是pre := &ListNode{}进行定义)。; next:指向cur的下一个节点。 后面还会根据不同的题型有不同的变量引入。 206. 反转链表 - 力扣(LeetCode) 1 2 3 4 5 6 7 8 9 10 11 12 13 func reverseList(head *ListNode) *ListNode { var pre *ListNode // 需要注意,不要写成 pre := *ListNode{},这样就完成了初始化、值不是 nil 了 cur := head for cur != nil { next := cur.Next // 保存 next,防止丢失 cur.Next = pre // 断 cur 尾,使其指向反转链表头部 pre = cur // 更新 pre,让其移动到 cur 的位置,此时 cur 成为新头部,pre 符合其定义仍然指向反转链表的头部 cur = next // cur 移动,指向下一个待反转节点 } return pre } 循环中的这 4 步:...

September 19, 2025 · 403 words · Kurong