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.
成对的交换链表里的结点。除了不准修改值以外就没什么难度了。做法就是交换前后两个结点的位置,也没什么难的……。
ListNode* swapPairs(ListNode* head) {
ListNode* keephead=head;
if(head&&head->next){
keephead=head->next;
ListNode* temp=head->next;
head->next=head->next->next;
temp->next=head;
head->next=swapPairs(head->next);
}
return keephead;
}
};