24. Swap Nodes in Pairs

来源:互联网 发布:java pdf嵌入页面 编辑:程序博客网 时间:2024/05/03 07:27

Given a linked list, swap every two adjacent nodes and return its head.

For example,
Given 1->2->3->4, you should return the list as 2->1->4->3.

Your algorithm should use only constant space. You may not modify the values in the list, only nodes itself can be changed.


class Solution {public:    ListNode* swapPairs(ListNode* head) {        if(!head ||head->next == NULL)        return head;        ListNode dum(0), *first, *second;        ListNode *temp = &dum;         dum.next = head;        while(temp->next != NULL && temp->next->next !=NULL)        {            first = temp->next;            second = temp->next->next;            first->next = second->next;            temp->next = second;            temp->next->next = first;            temp = temp->next->next;        }        return dum.next;    }};


0 0