class Solution {
public:ListNode* swapPairs(ListNode* head) {ListNode*dummyhead=new ListNode(0);dummyhead->next=head;ListNode*cur=dummyhead;while(cur->next!=NULL&&cur->next->next!=NULL){ListNode*tmp=cur->next;ListNode*tmp1=cur->next->next->next;cur->next=cur->next->next;cur->next->next=tmp;tmp->next=tmp1;cur=cur->next->next;}return dummyhead->next;}
};
创建一个新的ListNode类型的节点dummyhead。创建一个ListNode类型的指针cur,如果指针cur指向下一个节点的指针的指向cur->next不为空NULL并且cur指向下一个节点的下一个节点的指针的指向cur->next->next不为空NULL,则进入循环。创建一个ListNode类型的指针tmp,tmp指向cur节点的下一个节点cur->next。创建一个ListNode类型的指针tmp1,tmp1指向cur结点的下一个节点的下一个节点的的下一个节点cur->next->next->next。cur指向下一个节点的指针cu->next等于cur指向的下一个节点的下一个节点cur->next->next。cur指向的下一个节点的下一个节点cur->next->next等于cur指向的下一个节点tmp。tmp指向的下一个节点tmp->next等于tmp1。cur指针后移两位,即cur=cur->next->next。跳出循环。返回dummyhead的下一个节点dummyhead->next。