提交记录
执行结果:
解题思路:
增加一个哨兵节点,就不需要考虑第一组操作的特殊性;
语言: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.增加哨兵节点
增加一个哨兵结点放在头节点的前面。