LeetCode 328 奇偶鍊錶

2021-10-01 16:27:14 字數 1133 閱讀 5425

題目:奇偶鍊錶

示例 1:

輸入: 1->2->3->4->5->null

輸出: 1->3->5->2->4->null

示例 2:

輸入: 2->1->3->5->6->4->7->null

輸出: 2->3->6->7->1->5->4->null

說明:

問題分析:題目使用原地演算法完成,即不能建立其他的資料結構,且空間複雜度要求為o(1),即不能建立和該鍊錶一樣長的儲存結構,時間複雜度要求o(nodes)即要一遍遍歷完成。還有注意這裡的奇數節點和偶數節點指的是節點編號的奇偶性,而不是節點的值的奇偶性。

解題思路:既然要求前面為奇數,後面為偶數,那麼直接奇數為一鏈,偶數為一鏈,再將偶數鏈結在奇數鏈後面就完成了。所以設兩個指標ji和ou,ji指標指向第乙個結點,ou指標指向第二個結點,兩指標處斷開與後面結點聯絡,然後兩指標同時後移,重複以上操作,並設定乙個指標ouhead標記偶煉表頭結點,分成兩條鏈後,奇數鏈最後乙個結點指標域指向ouhead,組合成一條鏈,完成題目。

**實現

在開始對特殊情況判斷一下,鍊錶沒有元素或只有乙個元素時。

/**

* definition for singly-linked list.

* public class listnode

* }*/class

solution

listnode ji=head;

listnode ou=head.next;

listnode ouhead=ou;

while

(ou!=null&&ou.next!=null)

ji.next=ouhead;

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 ...