給定乙個單鏈表,把所有的奇數節點和偶數節點分別排在一起。請注意,這裡的奇數節點和偶數節點指的是節點編號的奇偶性,而不是節點的值的奇偶性。
請嘗試使用原地演算法完成。你的演算法的空間複雜度應為 o(1),時間複雜度應為 o(nodes),nodes 為節點總數。
示例 1:示例 2:輸入: 1->2->3->4->5->null
輸出: 1->3->5->2->4->null
輸入: 2->1->3->5->6->4->7->null說明:輸出: 2->3->6->7->1->5->4->null
應當保持奇數節點和偶數節點的相對順序。
鍊錶的第乙個節點視為奇數節點,第二個節點視為偶數節點,以此類推。
分析:
由於題目要求將鍊錶中奇節點和偶節點分別連續列印出來,我們可以想到,分別將鍊錶中的奇節點和偶節點分別抽出來,最後將挪到最後一位的奇節點的下乙個指向第乙個偶節點,此時的結果就是題目所要求的。
/**
* definition for singly-linked list.
* public class listnode
* }*/class solution
listnode ji=head;
listnode ou=head.next;
listnode outstart=ou; //第乙個偶節點
while(ou!=null&&ou.next!=null)
ji.next=outstart; //當前的奇節點為鍊錶中最後乙個奇節點
return head;
}}
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 ...
leetcode328 奇偶鍊錶
思路 例如 1,2,3,4,5,null 每次將偶下標後的奇下標插入到上乙個奇下標之後,然後注意連線奇部分和偶部分即可。definition for singly linked list.class listnode object def init self,x self.val x self.ne...