leetcode 328 奇偶鍊錶

2022-04-03 17:08:44 字數 1172 閱讀 6729

更新**:

開頭檢測是否需要調整(是否具有第三個節點)

使用三個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 ...