Swap Nodes in Pairs
ListNode *swapPairs(ListNode *head) { // Note: The Solution object is instantiated only once and is reused by each test case. ListNode *prev,*cur,*next; if(!head||!head->next) return head; ListNode* newhead,*pprev; prev = head; cur = prev->next; pprev = NULL; while(true){ next = cur->next; prev->next = next; cur->next = prev; if(pprev) pprev->next = cur; else newhead = cur; pprev = prev; prev = next; if(prev&&prev->next) cur = prev->next; else break; } return newhead; }