做家电维修网站,seo做得比较好的企业案例,网站模板安装步骤,防内涵吧网站源码两两交换链表中的节点
一开始自己的思路只是两两交换#xff0c;并没有说涉及到前一个节点。实际上两两交换涉及到了三个节点 使用虚拟头结点#xff0c;这样一次性处理三个节点。且每次组里第一个节点其实数值没变。
class Solution {
public:ListNode* swapPairs(ListNod…两两交换链表中的节点
一开始自己的思路只是两两交换并没有说涉及到前一个节点。实际上两两交换涉及到了三个节点 使用虚拟头结点这样一次性处理三个节点。且每次组里第一个节点其实数值没变。
class Solution {
public:ListNode* swapPairs(ListNode* head) {ListNode* dummyhead new ListNode(0);dummyhead-nexthead;ListNode* curdummyhead;while(cur-next ! nullptr cur-next-next ! nullptr){ListNode* temp1 cur-next;ListNode* temp2 cur-next-next-next;cur-nextcur-next-next;cur-next-nexttemp1;temp1-nexttemp2;curcur-next-next;}return dummyhead-next;}
};迭代法发现的规律是本质上一组同时改变新的节点。重复的是原来head-》next也就是newhead变成了新的头结点。而且要每次返回交换顺序的头结点给上一组。
class Solution {
public:ListNode* swapPairs(ListNode* head) {if(head nullptr || head-next nullptr) return head;ListNode* newhead head-next;head-next swapPairs(newhead-next);newhead-nexthead;return newhead;}
};