1. 程式人生 > 實用技巧 >Leetcode 24. 兩兩交換連結串列中的節點

Leetcode 24. 兩兩交換連結串列中的節點

給定一個連結串列,兩兩交換其中相鄰的節點,並返回交換後的連結串列。

你不能只是單純的改變節點內部的值,而是需要實際的進行節點交換。

示例:

給定 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; } };