# 问
定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
1
2
2
# 答
# 双指针
2.next -> 1.next -> null。
每个节点的next指向前一个节点。
一个指针用于遍历,另一个指针用于指向前一个节点。
let reverseLinkList = function (head) {
// 当前节点
let cur = head
// 前一个节点 null
let pre = null
while(cur) {
let tmp = cur.next
cur.next = pre
pre = cur
cur = tmp
}
return pre
}
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13