题目
题目链接
. - 力扣(LeetCode)
题目描述
代码实现
class Solution {
public:
ListNode* swapPairs(ListNode* head) {
if(head == nullptr || head->next == nullptr) return head;
ListNode *tmpHead = swapPairs(head->next->next);
ListNode *next = head->next;
head->next->next = head;
head->next = tmpHead;
return next;
}
};
思路分析
1、首先将头两个节点之后的链表看作一个整体,完成两两节点之间的交换。
2、其次,就是完成头部两个节点的交换,然后和后边的整体连接起来,成为完整的链表。
3、其次考虑递归出口,当头节点只有一个或者为空的时候,直接返回头节点即可。