Swap Nodes in Pairs

 

    ListNode *swapPairs(ListNode *head) {
        // Note: The Solution object is instantiated only once and is reused by each test case.
        ListNode *prev,*cur,*next;
        if(!head||!head->next)
            return head;
        ListNode* newhead,*pprev;
        prev = head;
        cur = prev->next;
        pprev = NULL;
        while(true){
            next = cur->next;
            prev->next = next;
            cur->next = prev;
            if(pprev)
                pprev->next = cur;
            else
                newhead = cur;
            pprev = prev;
            prev = next;
            if(prev&&prev->next)
                cur = prev->next;
            else
                break;
            
        }
        
        return newhead;
    }

  

posted @ 2013-10-06 14:45  summer_zhou  阅读(125)  评论(0编辑  收藏  举报