两两交换链表中的节点
2017-03-31 20:18
232 查看
I. 问题描述
给一个链表,两两交换其中的节点,然后返回交换后的链表。给出
你应该返回的链表是
II. 解题思路
有必要建立头结点,每找到两个节点交换两个节点的值,依次进行。
III. 代码实现
class Solution {
public:
ListNode* swapPairs(ListNode* head) {
ListNode* dummy= new ListNode(0);
dummy->next=head;
while(head!=NULL&&head->next!=NULL){
int n=head->val;
head->val=head->next->val;
head->next->val=n;
head=head->next->next;
}
return dummy->next;
}
};
IV. 个人感悟
完全常规的步骤,一定是我做的顺序有问题>_<
给一个链表,两两交换其中的节点,然后返回交换后的链表。给出
1->2->3->4,
你应该返回的链表是
2->1->4->3。
II. 解题思路
有必要建立头结点,每找到两个节点交换两个节点的值,依次进行。
III. 代码实现
class Solution {
public:
ListNode* swapPairs(ListNode* head) {
ListNode* dummy= new ListNode(0);
dummy->next=head;
while(head!=NULL&&head->next!=NULL){
int n=head->val;
head->val=head->next->val;
head->next->val=n;
head=head->next->next;
}
return dummy->next;
}
};
IV. 个人感悟
完全常规的步骤,一定是我做的顺序有问题>_<