标签:www https 元素 pre 剑指offer leetcode 关键点 lin next
方法1: iterative
记忆点: 采用pre,cur,next3个指针进行迭代
关键点:
cur != nil
表示每个链表节点都需要翻转一次. 以链表[1,2,3]为例,cur != nil可以使得1,2,3都分别作为cur执行一次循环。// 1->2->3->null
//null<-1<-2<-3
// cur:当前处理的节点,cur.Next需要指向其前一个元素
// next:保存子链
// pre:保存前一个元素
// Test Cases: 1. NULL 2.One Node 3. Two Nodes
func reverseList(head *ListNode) *ListNode {
var pre *ListNode
cur := head
for cur != nil{
next := cur.Next // save next
cur.Next = pre // recerse cur
// update pointers
pre = cur
cur = next
}
return pre
}
方法2: recursive
如何递归反转链表
How To Reverse A Singly Linked List | The Ultimate Explanation (Iteratively & Recursively)
标签:www https 元素 pre 剑指offer leetcode 关键点 lin next
原文地址:https://www.cnblogs.com/yudidi/p/12180596.html