將兩個有序鍊錶合併為乙個新的有序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。
示例:輸入:1->2->4, 1->3->4
輸出:1->1->2->3->4->4
分析
雙指標注意儲存頭節點
分類討論
# definition for singly-linked list.
# class listnode:
# def __init__(self, x):
# self.val = x
# self.next = none
class
solution
:def
mergetwolists
(self, l1: listnode, l2: listnode)
-> listnode:
if l1 is
none
:return l2
if l2 is
none
:return l1
cur1 = l1
cur2 = l2
if cur1.val <= cur2.val:
cur = listnode(cur1.val)
cur1 = cur1.
next
else
: cur = listnode(cur2.val)
cur2 = cur2.
next
result = cur
while cur1 is
notnone
and cur2 is
notnone
:if cur1.val <= cur2.val:
cur.
next
= listnode(cur1.val)
cur1 = cur1.
next
else
: cur.
next
= listnode(cur2.val)
cur2 = cur2.
next
cur = cur.
next
if cur1 is
notnone
: cur.
next
= cur1
elif cur2 is
notnone
: cur.
next
= cur2
return result
21 合併兩個有序鍊錶
將兩個有序鍊錶合併為乙個新的有序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。示例 輸入 1 2 4,1 3 4 輸出 1 1 2 3 4 4 原本想的是用19題的結構陣列那種方法來做 分別遍歷兩個鍊錶,建立結構儲存原始索引,val和指標,氣泡排序這個結構,更新索引,按照索引建立新的n...
21 合併兩個有序鍊錶
合併兩個有序鍊錶 將兩個有序鍊錶合併為乙個新的有序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。示例 輸入 1 2 4,1 3 4輸出 1 1 2 3 4 4比較簡單,比較大小,重新排序即可。created by hints on 2019 1 9.include using name...
21 合併兩個有序鍊錶
將兩個有序鍊錶合併為乙個新的有序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。輸入 1 2 4,1 3 4 輸出 1 1 2 3 4 4先確定合併鍊錶第乙個節點 在迴圈中同時遍歷兩個鍊錶,將後面其餘節點逐次比較,依大小次序連線到首節點之後,迴圈結束後可能有乙個鍊錶未遍歷完,將這個鍊錶剩...