21 合併兩個有序鍊錶 直接判斷合成

2021-10-05 16:19:41 字數 829 閱讀 5820

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

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

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

解答:在while迴圈內直接對l1和l2的值比較大小,先新增小的。之後哪個鍊錶不為空,直接加在後邊就行,注意此時應該用if判斷一次即可,而不是前面的while。

def

mergetwolists

(self, l1: listnode, l2: listnode)

-> listnode:

head = listnode(0)

cur =head

while l1 and l2:

if l1.val <= l2.val:

head.

next

= l1

l1 = l1.

next

else

: head.

next

=l2 l2 = l2.

next

head =head.

next

if l1:

#注意用if,一開始用的while導致超時,用while其實結果也會錯,會一直降l1的最後乙個節點載入到head後。

head.

next

=l1 if l2:

head.

next

=l2 return cur.

next

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先確定合併鍊錶第乙個節點 在迴圈中同時遍歷兩個鍊錶,將後面其餘節點逐次比較,依大小次序連線到首節點之後,迴圈結束後可能有乙個鍊錶未遍歷完,將這個鍊錶剩...