class Solution {
public:
ListNode *swapPairs(ListNode *head) {
if (head == NULL || head->next == NULL) return head;
ListNode* newhead = head->next;
ListNode* prev = NULL, *cur1 = head, *cur2 = head->next;;
prev = cur1;
cur1->next = cur2->next;
cur2->next = cur1;
while (prev->next != NULL && prev->next->next != NULL) {
cur1 = prev->next;
cur2 = cur1->next;
prev->next = cur2;
cur1->next = cur2->next;
cur2->next = cur1;
prev = cur1;
}
return newhead;
}
};