328. 奇偶鍊錶
給定單鏈表的頭節點head
,將所有索引為奇數的節點和索引為偶數的節點分別組合在一起,然後返回重新排序的列表。
第乙個節點的索引被認為是奇數,第二個節點的索引為偶數,以此類推。
請注意,偶數組和奇陣列內部的相對順序應該與輸入時保持一致。
你必須在o(1)
的額外空間複雜度和o(n)
的時間複雜度下解決這個問題。
示例 1:
輸入:head = [1,2,3,4,5]
輸出:[1,3,5,2,4]
示例 2:
輸入:head = [2,1,3,5,6,4,7]
輸出:[2,3,6,7,1,5,4]
本題其實比較容易想,就是需要將原來的鍊錶拆分為兩個鍊錶,最後將它們拼接在一起就行了。
這裡可以通過一次遍歷就將這兩個鍊錶分開,最後只要將偶數鍊錶接在奇數鍊錶後就達到了目的。
/**
* definition for singly-linked list.
* public class listnode
* listnode(int val)
* listnode(int val, listnode next)
* }*/class solution
listnode evenhead = head.next;
listnode odd = head, even = evenhead;
while(even != null && even.next != null)
odd.next = evenhead;
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 ...