还是很简单的。
记得记录头结点的头结点就行。
/*** 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;}
};