解題思路
先讚後看,時薪百萬!
首先我們用考慮把大象裝進冰箱分幾步法考慮這個題。
我們要做的就是找到4個點:
頭(可以是空)
點1點2
尾(可以是空)
當前:頭(可以是空)-> 點1 -> 點2 -> 尾(可以是空)
目標:頭(可以是空)-> 點2 -> 點1 -> 尾(可以是空)
我們需要幹的活兒:
步1. 讓頭指向點2
步2. 讓點2指向點1
步3. 讓點1指向尾
然後就是,最開始其實是空的。所以先搞乙個假頭裝上。
最後返回的時候再從假頭後面開始返回鍊錶就ok啦。
class solution:h = listnode(0)
h.next = head # 假頭
temph = h # 指標指向當前的頭
while temph.next and temph.next.next: # 存在點1和點2
node1 = temph.next
node2 = temph.next.next
temph.next = node2 # 步1
node1.next = node2.next # 步2
node2.next = node1 # 步3
temph = node1 # 移動指標,指向新的頭
return h.next
力扣 24 兩兩交換鍊錶中的節點 鍊錶 遞迴
思路一 順著做,這樣也有兩種做法。第一種就是直接兩個兩個交換,那麼需要記錄前驅和後繼。第二種就是先把鍊錶分成兩個小的鍊錶,乙個儲存奇數字置的樹,乙個儲存偶數字置的數,然後再把他們合起來。definition for singly linked list.struct listnode class s...
力扣日記 024 兩兩交換鍊錶中的節點 遞迴
給定乙個鍊錶,兩兩交換其中相鄰的節點,並返回交換後的鍊錶。你不能只是單純的改變節點內部的值,而是需要實際的進行節點交換。根據題意,我以為 對鍊錶1 返回1 對鍊錶1,2 返回2,1 對鍊錶1,2,3 返回2,1,3 對鍊錶1,2,3,4 返回2,1,4,3 對鍊錶1,2,3,4,5 返回2,1,4,...
兩兩交換鍊錶中的節點 leetcode
leetcode位址 兩兩交換鍊錶中的節點 使用兩種方法,迭代和遞迴 這是使用的節點類 public class listnode listnode int val listnode int val,listnode next 判斷是否滿足條件,這裡的條件設定為鍊錶的個數是否為偶數,判斷方法為利用當...