leetcode程式設計 奇偶鍊錶

2021-10-14 02:39:30 字數 793 閱讀 7398

第一次在這上面寫總結,算是乙個新的開始吧!

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

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

示例 1:

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

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

我的想法是將奇數節點和偶數節點分別拆分成奇數鍊錶和偶數鍊錶,之後將偶數鍊錶接到奇數鍊錶後頭

class

solution

odd_tail-

>next = even_head;

}return head;}}

;

但出現了這個錯誤

runtime error: member access within null pointer of type 『listnode』

試圖使用空指標

最後找到錯誤原因:當給的原始鍊錶為偶數個時,even_tail指向了最後乙個節點,但迴圈終止條件沒達到。還要經歷乙個迴圈,所以最後乙個迴圈中even_tail->next指向了null,而even_tail也指向了空,所以將迴圈條件進行了更改

while

(even_tail !=

nullptr

&& even_tail-

>next !=

nullptr

)

執行成功。

LeetCode 奇偶鍊錶

給定乙個單鏈表,把所有的奇數節點和偶數節點分別排在一起。請注意,這裡的奇數節點和偶數節點指的是節點編號的奇偶性,而不是節點的值的奇偶性。請嘗試使用原地演算法完成。你的演算法的空間複雜度應為 o 1 時間複雜度應為 o nodes nodes 為節點總數。示例 1 輸入 1 2 3 4 5 null ...

Leetcode奇偶鍊錶

奇偶鍊錶分開本身比較基礎,這個題目劃歸mediu的原因是對於空間複雜度和時間複雜度的要求上,額外的空間複雜度只能為o 1 即額外使用的空間與輸入鍊錶的長度無關。問題的關鍵在於兩個指標,乙個指向當前的奇數節點,乙個指向當前的偶數節點。分別記為odd,even。首先讓奇數節點的next指向偶數節點的ne...

leetcode 奇偶鍊錶

給定乙個單鏈表,把所有的奇數節點和偶數節點分別排在一起。請注意,這裡的奇數節點和偶數節點指的是節點編號的奇偶性,而不是節點的值的奇偶性。請嘗試使用原地演算法完成。你的演算法的空間複雜度應為 o 1 時間複雜度應為 o nodes nodes 為節點總數。示例 1 輸入 1 2 3 4 5 null輸...