更新**:
開頭檢測是否需要調整(是否具有第三個節點)
使用三個listnode* 變數記錄奇偶鍊錶的頭尾heada,taila為奇鍊錶,headb為偶數鍊錶,由於只需要最後令taila->next=headb因此不需要tailb。
使用兩個listnode* 變數來進行遍歷,cur記錄當前鍊錶節點指標,nxt記錄下乙個鍊錶節點指標。
使用乙個int 變數記錄是否為奇數節點,如果是則更新taila。
time o(n),space o(1)
/*效果不錯* * definition for singly-linked list.
* struct listnode
* }; */
/****/
class
solution
cur->next=null;// if(flag) cur->next=null;應該也可以
taila->next=headb;
return
heada;}};
c++**:定義三個指標變數,cur,nex,head2,思路就是將鍊錶分開為奇偶兩部分,cur,和nex分別指向當前節點和下乙個節點,當nex的下乙個節點為null 終止迴圈,head指向第二個節點(如果有的話);
時間複雜度o(nodes);
1/**效果一般般:2* definition for singly-linked list.
3* struct listnode
7* };8*/
9class
solution
23 cur->next=null;
2425
if(flag==1
)else
30return
head;31}
32 };
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 ...