24. Swap Nodes in Pairs
Leetcode
題目
Input: head = [1,2,3,4]
Output: [2,1,4,3]Input: head = []
Output: []Input: head = [1]
Output: [1]è§£ç”
Last updated
Input: head = [1,2,3,4]
Output: [2,1,4,3]Input: head = []
Output: []Input: head = [1]
Output: [1]Last updated
var swapPairs = function(head) {
if (!head || !head.next) return head;
let firstNode = head;
let secondNode = head.next;
firstNode.next = swapPairs(secondNode.next);
secondNode.next = firstNode;
return secondNode;
};var swapPairs = function(head) {
if (!head || !head.next) return head;
// 回傳第二個 node èµ·é çš„ linked list
let beginNode = head.next;
let prevNode = new ListNode(-1);
while(head && head.next) {
let firstNode = head;
let secondNode = head.next;
// Swapping
prevNode.next = secondNode;
firstNode.next = secondNode.next;
secondNode.next = firstNode;
// 儲å˜é€™ä¸€è¼ªçš„ firstNode 以讓下一輪指到æ£ç¢ºçš„ secondNode (line 12)
prevNode = firstNode;
// 讓 head 跳兩個 node
head = firstNode.next;
}
return beginNode;
};