合併兩個有序列表

2022-01-29 22:02:06 字數 954 閱讀 7878

1.尾遞迴

1

def_recursion_merge_sort2(l1, l2, tmp):

2if len(l1) == 0 or len(l2) ==0:

3tmp.extend(l1)

4tmp.extend(l2)

5return

tmp6

else:7

if l1[0] dell1[0]

10else:11

12del

l2[0]

13return

_recursion_merge_sort2(l1, l2, tmp)

1415

defrecursion_merge_sort2(l1, l2):

16return _recursion_merge_sort2(l1, l2, )

2.迴圈演算法

比較兩個列表的首個元素

小的就插入到新列表裡

把已經插入新列表的元素從舊列表刪除

直到兩個舊列表有乙個為空

再把舊列表加到新列表後面

1

defloop_merge_sort(l1, l2):

2 tmp =

3while len(l1) > 0 and len(l2) >0:

4if l1[0] dell1[0]

7else:8

9del

l2[0]

10tmp.extend(l1)

11tmp.extend(l2)

12return tmp

go合併兩個有序列表

題目 將兩個有序鍊錶合併為乙個新的有續鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點做成的。思路 1 如果給定的兩條鍊錶中有一條為空,返回另一條即可 2 若兩條鍊錶都不為空,則在兩條鍊錶中選擇較小的節點作為head,被選中的較小節點所在鍊錶的第二個節點便成了二當家帶領這條鍊錶 3 二當家帶領著...

leetcode合併兩個有序列表

將兩個有序鍊錶合併為乙個新的有序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。例如 輸入 1 2 4,1 3 4 輸出 1 1 2 3 4 4 class solution def mergetwolists self,l1 listnode,l2 listnode listnode ...

每日演算法 合併兩個有序列表

將兩個有序的鍊錶合併為乙個新鍊錶,要求新的鍊錶是通過拼接兩個鍊錶的節點來生成的,且合併後新鍊錶依然有序。思路 l1為空返回l2,l2為空返回l2 都不為空,定義乙個頭節點,迴圈比較兩個列表的大小,小的拼接到頭結點,並拆除當前節點 public class nc33 if l2 null listno...