leetCode 328 奇偶鍊錶

2021-10-10 12:35:47 字數 735 閱讀 5714

給定乙個單鏈表,把所有的奇數節點和偶數節點分別排在一起。請注意,這裡的奇數節點和偶數節點指的是節點編號的奇偶性,而不是節點的值的奇偶性。

請嘗試使用原地演算法完成。你的演算法的空間複雜度應為 o(1),時間複雜度應為 o(nodes),nodes 為節點總數。

思路:使用乙個odd指標指向鍊錶中的奇數字置的節點,pre指標為odd的前乙個節點。通過操作preodd指標來刪除奇數字置的節點。

pre.next = odd.next;

odd.next = null;

刪除節點前要把偶數字置的節點儲存下來:

dhead.next = odd;

dhead = dhead.next;

這裡用到了啞節點來儲存奇數位置的節點,當刪除完成後將偶數鍊錶與奇數鍊錶相連線即可。

需要注意的是迴圈條件,因為鍊錶節點數有可能是奇數或者偶數,因此遍歷結束後要判斷odd指標是否為null

class

solution

if(odd != null)

pre.next = dummy.next;

return head;

}}

LeetCode 328 奇偶鍊錶

給定乙個單鏈表,把所有的奇數節點和偶數節點分別排在一起。請注意,這裡的奇數節點和偶數節點指的是節點編號的奇偶性,而不是節點的值的奇偶性。請嘗試使用原地演算法完成。你的演算法的空間複雜度應為 o 1 時間複雜度應為 o nodes nodes 為節點總數。示例 1 輸入 1 2 3 4 5 null ...

LeetCode 328 奇偶鍊錶

給定乙個單鏈表,把所有的奇數節點和偶數節點分別排在一起。請注意,這裡的奇數節點和偶數節點指的是節點編號的奇偶性,而不是節點的值的奇偶性。請嘗試使用原地演算法完成。你的演算法的空間複雜度應為 o 1 時間複雜度應為 o nodes nodes 為節點總數。示例 1 輸入 1 2 3 4 5 null輸...

Leetcode328 奇偶鍊錶

給定乙個單鏈表,把所有的奇數節點和偶數節點分別排在一起。請注意,這裡的奇數節點和偶數節點指的是節點編號的奇偶性,而不是節點的值的奇偶性。請嘗試使用原地演算法完成。你的演算法的空間複雜度應為 o 1 時間複雜度應為 o nodes nodes 為節點總數。示例 1 輸入 1 2 3 4 5 null ...