兩個有序的鍊錶合併
將兩個有序鍊錶合併為乙個新的有序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。
示例:輸入: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...