菜鳥刷leetcode 24. Swap Nodes in Pairs

自己寫的時候,想到了交換的方法,但是沒有想到前面的點沒有前繼,導致[1 2 3 4 5]只出現結果[1 3 5]。當時是這樣寫的:

while()

{

p=head->next;

head->next=p->next;

p->next=head;

head=p->next->next;

}

由於p前面沒有數據,導致消失。應該加一個前繼,不然鏈表斷了。

class Solution {
public:
    ListNode* swapPairs(ListNode* head) {
        ListNode dummy(0),*pre=&dummy,*left(nullptr),*right(nullptr);
        dummy.next=head;
        while(pre!=NULL&&pre->next!=NULL&&pre->next->next!=NULL)
        {
            left=pre->next;
            right=left->next;
            left->next=right->next;
            pre->next=right;
            right->next=left;
            pre=pre->next->next;
            
            
        }
        return dummy.next;
    }
};

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章