Leetcode 24. 兩兩交換連結串列中的節點
阿新 • • 發佈:2020-07-02
給定一個連結串列,兩兩交換其中相鄰的節點,並返回交換後的連結串列。
你不能只是單純的改變節點內部的值,而是需要實際的進行節點交換。
示例:
給定 1->2->3->4, 你應該返回 2->1->4->3.
來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/swap-nodes-in-pairs
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。
class Solution { public: //新增頭結點便於操作 //兩個兩個直接進行交換 ListNode* swapPairs(ListNode* head) {if (!head || !head->next) return head; ListNode * newhead = new ListNode(0,head->next); ListNode* p = head, *p_pre = newhead,*q=p->next,*temp; while (p && p->next) { p->next = q->next; p_pre->next = q; q->next = p; p_pre = p; p = p->next; if(p) q = p->next; } return newhead->next; } };