Leetcode 328 奇偶鍊錶

2021-10-22 03:05:27 字數 944 閱讀 6970

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

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

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

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

定義奇偶鍊錶的頭指標和尾指標(頭負責定位,尾負責迭代)

取第乙個結點為奇煉表頭結點,第二個點為偶鍊錶的頭結點

從第三個結點開始遍歷,將當前結點交替插入到奇煉表和偶鍊錶(尾插法)

將偶鍊錶拼接在奇鍊錶後面,切記偶鍊錶的尾指標的next必須置null

public listnode oddevenlist

(listnode head)

listnode odd = head;

//奇數鍊錶

listnode even = head.next;

//偶數鍊錶

//暫存兩個煉表頭

listnode oddhead = odd;

listnode evenhead = even;

listnode cur = head.next.next;

boolean flag =

true

;while

(cur != null)

else

flag =

!flag;

cur = cur.next;

} odd.next = evenhead;

even.next = null;

//even尾指標必須置空

return oddhead;

}//時間複雜度o(n), 空間複雜度o(1)僅新開闢兩個結點

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