思路
本质题目可以分成多少个子题目
即把前两个链表交换,并与后面的链表相连
故实现函数功能调用自身递归即可
- #define _CRT_SECURE_NO_WARNINGS 1
- struct ListNode {
- int val;
- ListNode *next;
- ListNode() : val(0), next(nullptr) {}
- ListNode(int x) : val(x), next(nullptr) {}
- ListNode(int x, ListNode *next) : val(x), next(next) {}
- };
-
- class Solution {
- public:
- ListNode* swapPairs(ListNode* head) {
- if (head == nullptr || head->next == nullptr)return head; //遍历到末尾时返回最后一个节点
- auto tmp = swapPairs(head->next->next); //调用自身实现链表交换
- auto ret = head->next; //预先储存返回的头节点
- head->next->next = head; //实现功能
- head->next = tmp;
- return ret;
- }
- };
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |