Given the head
of a singly linked list, reverse the list, and return the reversed list.
给一个 linked list 将他反转。
Example
Input: 1 -> 2 -> 3 -> 4 -> 5
Output: 5 -> 4 -> 3 -> 2 -> 1
Coding
/** * @param {ListNode} head * @return {ListNode} */var reverseList = function(head) { let prev = null; while (head) { next = head.next; head.next = prev; prev = head; head = next; } return prev; };
创建一个 prev 指向 null
移动 next 到 head
的下一个 node
将 head 的 next 连接到 prev
移动 prev
到 head
(初始化 prev 指针)
移动 head
到 next
(移动到下一个要处理的 node)
移动 next
到下一个 node
将 head 的 next 连接到 prev
移动 prev
到 head
(初始化 prev 指针)
移动 head
到 next
(移动到下一个要处理的 node)
以此类推到 head 移动到 null。