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

[Leetcode 24 链表]Swap Nodes in Pairs

2015-03-11 14:51 316 查看
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) {
ListNode nodehead(0);
ListNode *pmove = &nodehead;
nodehead.next = head; //if have only one node,won't go into while
ListNode *first = head;
ListNode *second = head?head->next:NULL; //head may be NULL
while(first && second)
{
first->next = second->next;
second->next = first;
pmove->next = second;
pmove = first;
first = first?first->next:NULL;
second = first?first->next:NULL;
}
return nodehead.next;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode 链表 C语言