Leetcode 兩個有序的鍊錶合併

2021-09-10 13:02:49 字數 1249 閱讀 6263

兩個有序的鍊錶合併

將兩個有序鍊錶合併為乙個新的有序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。

示例:輸入:1->2->4, 1->3->4

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

思路:

我們需要自己設定兩個鍊錶,分別比較兩個鍊錶所指的向元素值得大小,小的元素新增到新的鍊錶當中去。記得還要判斷設定的兩個鍊錶cur1,cur2是否是各自鍊錶的末尾,如果不是,將剩餘元素新增到新的鍊錶的末尾

class

solution

:def

mergetwolists

(self, l1, l2)

:"""

:type l1: listnode

:type l2: listnode

:rtype: listnode

"""h = listnode(-1

) cur = h #頭結點給當前cur鍊錶

cur1 = l1

cur2 = l2 #定義兩個鍊錶

while cur1 !=

none

and cur2 !=

none

:#當兩個鍊錶都不是末尾

if cur1.val <= cur2.val:

#比較兩個鍊錶對應值得大小

cur.

next

= cur1 #當cur1的值更小,我們把cur1鍊錶給cur的下乙個結點

cur1 = cur1.

next

#cur1的下乙個結點給cur1,即先把cur1的小的值放到cur中

else

: cur.

next

= cur2 #否則就是將cur2鍊錶給cur的下乙個結點

cur2 = cur2.

next

cur = cur.

next

#cur的下乙個結點

if cur1 !=

none

:#分別判斷兩個鍊錶是否到末尾結點

cur.

next

= cur1 #若不是,將剩餘結點加到新鍊錶末尾

if cur2 !=

none

: cur.

next

= cur2

return h.

next

LeetCode 鍊錶 合併兩個有序鍊錶

將兩個公升序鍊錶合併為乙個新的 公升序 鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。示例 輸入 1 2 4,1 3 4 輸出 1 1 2 3 4 4 使用迭代。如下 definition for singly linked list.struct listnode listnode ...

LeetCode 合併兩個有序鍊錶

將兩個有序鍊錶合併為乙個新的有序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。示例 輸入 1 2 4,1 3 4輸出 1 1 2 3 4 4class solution else listnode p new head while l1 null l2 null else p p ne...

LeetCode 合併兩個有序鍊錶

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