Leetcode(16) 兩兩交換鍊錶中的節點

2021-10-09 11:12:01 字數 923 閱讀 3449

給定乙個鍊錶,兩兩交換其中相鄰的節點,並返回交換後的鍊錶。

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

示例:給定 1->2->3->4, 你應該返回 2->1->4->3.

方法一(遞迴):

**:

/**

* definition for singly-linked list.

* struct listnode

* };

*/class solution

listnode *firstnode = head;

listnode *secondnode = head->next;

secondnode->next = firstnode;

// now the head is the second node

return secondnode;

}};

方法二:(迭代)

把整個陣列看做是兩兩一組,然後對每個小組用兩個節點a和b來指向,a 指的是交換節點中的前面的節點,b 指的是要交換節點中的後面的節點。在完成它們的交換,我們還得用 prevnode 記錄 a 的前驅節點,用來指向下一組交換完的頭結點。

演算法:**:

/**

* definition for singly-linked list.

* struct listnode

* };

*/class solution

listnode *dumpy=new listnode(0);

dumpy->next=head;

listnode *pre=dumpy;

while(head&&head->next)

return dumpy->next;

}};

兩兩交換鍊錶中的節點 leetcode

leetcode位址 兩兩交換鍊錶中的節點 使用兩種方法,迭代和遞迴 這是使用的節點類 public class listnode listnode int val listnode int val,listnode next 判斷是否滿足條件,這裡的條件設定為鍊錶的個數是否為偶數,判斷方法為利用當...

Leetcode 兩兩交換鍊錶中的節點

兩兩交換鍊錶中的節點 題意 給定乙個鍊錶,兩兩交換其中相鄰的節點,並返回交換後的鍊錶。你不能只是單純的改變節點內部的值,而是需要實際的進行節點交換。給定1 2 3 4,你應該返回2 1 4 3.題解 這個題建議自己畫個圖。主要步驟大概就以下三步。能想出來,這個題基本就解決了。1 使新鍊錶節點的ans...

leetcode演算法題 鍊錶 兩兩交換鍊錶中的節點

給定乙個鍊錶,兩兩交換其中相鄰的節點,並返回交換後的鍊錶。你不能只是單純的改變節點內部的值,而是需要實際的進行節點交換。package com.leetcode.鍊錶 author markuszhang vm args date create in 2020 2 2 15 23 public cl...