LeetCode 24. Swap Nodes in Pairs

考察链表操作。

class Solution {
public:
    ListNode* swapPairs(ListNode* head) {
        if (head==NULL) return NULL;
        if (head->next==NULL) return head;
        ListNode *preHead=new ListNode(0);
        preHead->next=head;
        ListNode *m=head->next;
        ListNode *t=preHead;
        while(head){
            head->next=m->next;
            m->next=head;
            t->next=m;

            if (head->next)head=head->next;
            else break;
            m=m->next;
            m=m->next;
            if (m->next==NULL) break;
            m=m->next;
            t=t->next;
            t=t->next;
        }
        return preHead->next;
    }
};

 

posted @ 2018-08-12 22:54  Travelller  阅读(127)  评论(0编辑  收藏  举报