合併兩個有序鍊錶
將兩個有序鍊錶合併為乙個新的有序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。
示例:輸入:1->2->4, 1->3->4
輸出:1->1->2->3->4->4
1.思路 ,建立乙個新列表xin,同時遍歷兩個鍊錶l1,l2,比較大小,小的加到新的列表中去,然後知道其中乙個遍歷完,最後再把餘下的加到新的列表後面就可以了。
# 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:
xin=
listnode(0
) cur=xin
while l1 and l2:
if l1.val < l2.val:
cur.next=l1
l1=l1.next
else
: cur.next=l2
l2=l2.next
cur=cur.next
if l1:
cur.next=l1
if l2:
cur.next=l2
return xin.next
2.思路 ,和思路1相同但是用了遞迴的思想。
# 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 == none:
return l2
if l2 == none:
return l1
res =
listnode(0
)if l1.val <= l2.val:
res = l1
res.next = self.
mergetwolists
(l1.next,l2)
else
: res = l2
res.next = self.
mergetwolists
(l1,l2.next)
return res
在編寫**時一定要記得每次迴圈把新的鍊錶向下移動一位。 力扣 合併兩個有序鍊錶
將兩個公升序鍊錶合併為乙個新的 公升序 鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。示例 輸入 1 2 4,1 3 4輸出 1 1 2 3 4 4迭代法 definition for singly linked list.struct listnode listnode int x ...
力扣 21 合併兩個有序鍊錶
將兩個有序鍊錶合併為乙個新的有序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。示例 輸入 1 2 4,1 3 4 輸出 1 1 2 3 4 4 definition for singly linked list.struct listnode struct listnode merge...
合併兩個有序鍊錶 力扣 LeetCode
描述將兩個有序鍊錶合併為乙個新的有序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。示例 輸入 1 2 4,1 3 4 輸出 1 1 2 3 4 4 方法一 正常遍歷public listnode mergetwolists listnode l1,listnode l2 else if...