(LeetCode)鍊錶

2021-10-07 09:23:58 字數 1712 閱讀 7249

鍊錶問題可以用遞迴或者迴圈解決,相對來講,迴圈解決更加直觀,可以優先使用。

笨辦法1. 遍歷鍊錶,生成乙個陣列;

2. 根據陣列,倒序建立鍊錶;

聰明辦法

改指標方向

笨辦法:

遍歷兩個鍊錶,得到陣列;將陣列排好序;生成乙個新的鍊錶;

聰明解法:

遞迴"""

if l1 is

none

:return l2

if l2 is

none

:return l1

if l1.val < l2.val:

l1.next

= self.mergetwolists(l1.

next

, l2)

return l1

if l1.val >= l2.val:

l2.next

= self.mergetwolists(l1, l2.

next

)return l2

leetcode 鍊錶 回文鍊錶

請判斷乙個鍊錶是否為回文鍊錶。示例 1 輸入 1 2 輸出 false 示例 2 輸入 1 2 2 1 輸出 true 高階 你能否用 o n 時間複雜度和 o 1 空間複雜度解決此題?head null 空鍊錶,回文,返回true head.next null 只有乙個節點的列表,回文,返回tru...

leetcode 鍊錶 回文鍊錶

請判斷乙個鍊錶是否為回文鍊錶。示例 1 輸入 1 2輸出 false示例 2 輸入 1 2 2 1輸出 true高階 你能否用 o n 時間複雜度和 o 1 空間複雜度解決此題?思路 利用快慢指標找到中間節點,當快指標走到末尾時,慢指標指向中間節點 交中間節點之後的節點進行鍊錶反轉 設定指標p1從h...

分隔鍊錶(鍊錶 LeetCode)

題目鏈結 給你乙個鍊錶和乙個特定值 x 請你對鍊錶進行分隔,使得所有小於 x 的節點都出現在大於或等於 x 的節點之前。你應當保留兩個分割槽中每個節點的初始相對位置。示例 輸入 head 1 4 3 2 5 2,x 3 輸出 1 2 2 4 3 5維護兩個鍊錶,乙個鍊錶儲存比x小的結點,另乙個鍊錶儲...