题目描述


方法一:递归

class Solution{
public:
ListNode* swapPairs(ListNode* head){
if(!head || !head->next){
return head;
}
ListNode* newHead = head->next;
head->next = swapPairs(newHead->next);
newHead->next = head;
return newHead;
}
};

方法二:迭代

class Solution{
public:
ListNode* swapPairs(ListNode* head){
ListNode* dummy = new ListNode(0);
dummy->next = head;
ListNode* temp = dummy;
while(temp->next!=NULL && temp->next->next!=NULL){
ListNode* node1 = temp->next;
ListNode* node2 = temp->next->next;
temp->next = node2;
node1->next = node2->next;
node2->next = node1;
temp = node1;
}
return dummy->next;
}
};




















