給定乙個單鏈表,把所有的奇數節點和偶數節點分別排在一起。請注意,這裡的奇數節點和偶數節點指的是節點編號的奇偶性,而不是節點的值的奇偶性。
使用原地演算法完成。演算法的空間複雜度應為 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 ...