提交记录
执行结果:
 
解题思路:
 增加一个哨兵节点,就不需要考虑第一组操作的特殊性;
语言:C++
class Solution {
public:
    ListNode* swapPairs(ListNode* head) {
        ListNode*first=new ListNode(0);
        first->next=head;
        ListNode*p=first;
        ListNode*q=p->next;
        while(p->next && q->next){
            p->next=q->next;
            q->next=q->next->next;
            p->next->next=q;
            p=p->next->next;
            q=p->next;
        }
        return first->next;
    }
};
 
细节提升
1.增加哨兵节点
增加一个哨兵结点放在头节点的前面。










