
还是很简单的。
记得记录头结点的头结点就行。
cpp
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode() : val(0), next(nullptr) {}
* ListNode(int x) : val(x), next(nullptr) {}
* ListNode(int x, ListNode *next) : val(x), next(next) {}
* };
*/
class Solution {
public:
ListNode* swapPairs(ListNode* head) {
ListNode* h=new ListNode(0,head);
ListNode* a=h;
ListNode* b=head;
while(b&&b->next){
ListNode* c=b->next;
a->next=c;
b->next=c->next;
c->next=b;
a=b;
b=b->next;
}
return h->next;
}
};