題目: LeetCode - 24. Swap Nodes in Pairs

題目說明

給一個 Linked List,將相鄰的兩個 node 互換 ( 1、2 互換,3、4 互換)。最後回傳互換後的 head。

解題思路

使用 Recursive 的概念,先將第二個 node 保存,之後呼叫並傳入第三個 node,最後把第一個 node 接到第二個 node 後面即可。

參考解法

1
2
3
4
5
6
7
8
9
10
11
class Solution {
public:
ListNode* swapPairs(ListNode* head)
{
if (!head || !head->next) return head;
auto tmp = head->next;
head->next = swapPairs(head->next->next);
tmp->next = head;
return tmp;
}
};