Leetcode328 奇偶鍊錶

2021-09-20 10:22:37 字數 1072 閱讀 4632

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

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

示例 1:

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

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

示例 2:

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

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

說明:

應當保持奇數節點和偶數節點的相對順序。

鍊錶的第乙個節點視為奇數節點,第二個節點視為偶數節點,以此類推。

使用兩個臨時鍊錶 乙個儲存奇數 乙個儲存偶數

public listnode oddevenlist

(listnode head)

else

curnode = curnode.next;

i++;}

prve1.next = dummynode2.next;

prve2.next = null;

return dummynode1.next;

}

我們可以使用兩個指標來做,pre指向奇節點,cur指向偶節點, 然後把偶節點cur後面的那個奇節點提前到pre的後面, 然後pre和cur各自前進一步,此時cur又指向偶節點,pre指向當前奇節點的末尾,以此類推直至把所有的偶節點都提前了即可

public listnode oddevenlist2

(listnode head)

listnode pre = head;

listnode cur = head.next;

while

(cur!=null && cur.next!=null)

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 奇偶鍊錶

思路 例如 1,2,3,4,5,null 每次將偶下標後的奇下標插入到上乙個奇下標之後,然後注意連線奇部分和偶部分即可。definition for singly linked list.class listnode object def init self,x self.val x self.ne...