劍指offer刷題(十五)合併兩個排序的鍊錶

2021-10-04 21:19:56 字數 908 閱讀 4060

輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。

由於兩個鍊錶都是遞增的,所以每次共同比較兩個鍊錶中最小的值,把比較小的值插入到新的鍊錶中,一直迴圈,直到某個鍊錶為空,再把另外乙個不為空的鍊錶插入到新的鍊錶中。

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 到另外的乙個棧,取出棧低元素之後再進...