Given the head of a singly linked list, reverse the list, and return the reversed list.
給一個 linked list 將他反轉。
Input: 1 -> 2 -> 3 -> 4 -> 5
Output: 5 -> 4 -> 3 -> 2 -> 1
/**
* @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。
