您的位置:首页 > Web前端 > Node.js

[LeetCode]Swap Nodes in Pairs

2015-07-26 23:10 495 查看
解题思路:

就是前后互换呗,又不让改动val,只能在head前面加一个牵引node,用来操作这一切

/**
* 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) {
ListNode* preHead = new ListNode(0);
preHead->next = head;

ListNode* cur = preHead;
while(cur->next != NULL && cur->next->next != NULL){
ListNode* tmp = cur->next;
cur->next = cur->next->next;
tmp->next = cur->next->next;
cur->next->next = tmp;
cur = cur->next->next;
}

return preHead->next;
}
};


// Java 实现
public class Solution {
public ListNode swapPairs(ListNode head) {
ListNode dummyHead = new ListNode(0);
ListNode p = dummyHead;
ListNode q = head;
dummyHead.next = head;

while( q != null && q.next != null){

p.next = q.next;
q.next = p.next.next;
p.next.next = q;

q = q.next;
p = p.next.next;
}

return dummyHead.next;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: