- 题目 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。
示例 1:
输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1]
输入:head = [1,2] 输出:[2,1]
输入:head = [] 输出:[]
- 写法一
var reverseList = function(head) {
if (!head) return null
//声明变量记录 pre、cur
let pre = null;
let cur = head;
// 当cur是节点时,进行迭代
while (cur) {
//先保存当前节点的下一个节点
const next = cur.next
cur.next = pre
pre = cur
cur = next
}
return pre;
};
- 写法2
var reverseList = function(head) {
if (!head) return null
let pre = null, cur = head;
while (cur) {
[cur.next,pre,cur] = [ pre,cur,cur.next ]
}
return pre;
};