LeetCode 24. Swap Nodes in Pairs

来源:互联网 发布:pose studio mac 编辑:程序博客网 时间:2024/06/16 18:15

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.

交换两个结点,很简单,别忘记交换完的结点与前面结点的连接。

/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public:    ListNode* swapPairs(ListNode* head) {        if(!head || !head->next) return head;        ListNode* node1;        ListNode* node2;        ListNode* node3;        node1 = head->next;        node2 = node1->next;        node1->next = head;        head->next = node2;        head = node2;        ListNode* realhead = node1;        ListNode* pre = node1->next;        while(head && head->next){            node1 = head->next;            node2 = node1->next;            node1->next = head;            head->next = node2;            head = node2;            pre->next = node1;            pre = node1->next;        }        return realhead;    }};


0 0
原创粉丝点击