class Solution {
public:
ListNode* swapPairs(ListNode* head) {
ListNode *new_head = new ListNode(0, head);
int n = 0;
if(head == nullptr || head->next == nullptr)return head;
ListNode *p = new_head, *left = head, *right = head->next;
while(right){
if(n % 2 == 0){
left->next = right->next;
right->next = left;
p->next = right;
right = left->next;
p = p->next;
n++;
}
else{
p = p->next;
left = left->next;
right = right->next;
n++;
}
}
return new_head->next;
}
};
Accepted
55/55 cases passed (4 ms)
Your runtime beats 55.43 % of cpp submissions
Your memory usage beats 42.45 % of cpp submissions (7.4 MB)