单链表核心代码如下:
1.迭代方法:
1
2
3
4
5
6
7
8
| func reverseList(node *ListNode) *ListNode {
cur := node
var pre *ListNode
for cur != nil {
cur.Next, pre, cur = pre, cur, cur.Next
}
return pre
}
|
理解:cur指向当前节点,pre是前节点初始为nil,反转过程:
1
2
3
4
| next := cur.next //新建一个临时节点用于保存cur.next,不然会丢失
cur.next = pre
pre = cur
cur = next
|
2.递归方式
……
阅读全文