輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。
由於兩個鍊錶都是遞增的,所以每次共同比較兩個鍊錶中最小的值,把比較小的值插入到新的鍊錶中,一直迴圈,直到某個鍊錶為空,再把另外乙個不為空的鍊錶插入到新的鍊錶中。
class
solution
:# 返回合併後列表
defmerge
(self, phead1, phead2)
:# write code here
#初始化乙個節點值為0的空節點
phead = listnode(0)
#把phead的指向用temp儲存下來
temp = phead
while phead1 and phead2:
if phead1.val <= phead2.val:
phead.
next
= phead1
phead = phead.
next
phead1 = phead1.
next
else
: phead.
next
= phead2
phead = phead.
next
phead2 = phead2.
next
if phead1 ==
none
: phead.
next
= phead2
if phead2 ==
none
: phead.
next
= phead1
return temp.
next
劍指offer之十五 合併兩個排序的鍊錶
輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。演算法思想 構造兩個指標分別指向兩個鍊錶,構造乙個新鍊錶 兩個指標所指向的節點比較大小,較小的放在前面指標後移,較大的不動,繼續比較大小 若某個鍊錶已空,直接將另乙個鍊錶剩下的部分鏈結到新鍊錶中。public...
劍指offer 合併兩個鍊錶
輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。新建乙個節點作為head,依次遍歷兩個陣列 時間複雜度 o n 空間複雜度 o 1 coding utf 8 class listnode def init self,x self.val x self.ne...
劍指offer 刷題思路(兩個棧實現佇列)
題目描述 用兩個棧來實現乙個佇列,完成佇列的push和pop操作。佇列中的元素為int型別。演算法思想 棧的特性是先進後出,佇列的特性是先進先出。佇列的push 可以用乙個棧的push進行操作,佇列的pop 要pop 棧最底下的元素。可以將除最底下的元素push 到另外的乙個棧,取出棧低元素之後再進...