文章目录
链表
4. 两两交换链表中的节点
思路:
如下图:
class Solution {
public:
ListNode* swapPairs(ListNode* head) {
if (head == NULL || head->next == NULL) return head;
ListNode *_dummyHead = new ListNode(0);
_dummyHead->next = head;
ListNode *cur = _dummyHead;
ListNode *cur1 = head;
ListNode *cur2 = head->next;
while (cur1 != NULL && cur2 != NULL) {
ListNode *tmp = cur2->next;
cur->next = cur2;
cur = cur1;
cur2->next = cur1;
cur1->next = tmp;
cur1 = tmp;
if (cur1 == NULL) break;
cur2 = cur1->next;
if (cur2 == NULL) break;
}
return _dummyHead->next;
}
};