反转一个单链表。
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
var reverseList = function(head) {
let p = head;
if(p == null) return null;
while(p.next != null){
let q = p.next;
p.next = q.next;
q.next = head;
head = q;
}
return head
};
图解:
-
初始化变量
-
p.next = q.next
-
q.next = head
-
head = q
-
第一轮结束
- 第二轮:
3 -> 2 -> 1 -> 4 -> 5
- 第三轮:
4 -> 3 -> 2 -> 1 -> 5
- 第四轮:
5 -> 4 -> 3 -> 2 -> 1