輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。
設定乙個res空鍊錶每次對兩個鍊錶的頭結點的val進行比較,把較小的那個放到res鍊錶中,然後移動頭結點
當某乙個鍊錶遍歷結束時,跳出while,然後把另乙個鍊錶中剩餘的結點一起放在res後面即可
# -*- coding:utf-8 -*-
# class listnode:
# def __init__(self, x):
# self.val = x
# self.next = none
class
solution
:# 返回合併後列表
defmerge
(self, phead1, phead2)
:# write code here
res=listnode(-1
) tmp=res
while
(phead1 and phead2):if
(phead1.val: tmp.
next
=phead1
phead1=phead1.
next
tmp=tmp.
next
else
: tmp.
next
=phead2
phead2=phead2.
next
tmp=tmp.
next
if phead1==
none
: tmp.
next
=phead2
else
: tmp.
next
=phead1
return res.
next
官方題解分為了迭代方法(也就是上述方法),和遞迴方法,遞迴這個東西還是不容易寫出的,也很容易出錯,個人覺得穩妥起見還是採用迭代方法比較好。 劍指offer JZ16合併兩個排序的鍊錶
時間限制 c c 1秒,其他語言2秒 空間限制 c c 32m,其他語言64m 熱度指數 805773 本題知識點 鍊錶 輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。遞迴 function listnode x function merge phead...
劍指Offer NO 16 合併兩個排序的列表
題目描述 輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。解題思路 使用遞迴方法 新建乙個鍊錶reslist用作輸出結果,輸入鍊錶為list1和list2,當list1.val反之,reslist list2,reslist.next merge list...
劍指offer 16 合併兩個排序的鍊錶
題目 輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。思路 先對兩個鍊錶用容器進行 然後在容器中對容器內的元素進行排序,最後進行合成鍊錶。struct listnode class solution while phead2 null sort vec.b...