牛客66道程式設計題 合併兩個排序的列表

2021-10-01 02:16:19 字數 2566 閱讀 6684

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

# -*- coding:utf-8 -*-

# class listnode:

# def __init__(self, x):

# self.val = x

# self.next = none

class

solution

:# 返回合併後列表

defmerge

(self, phead1, phead2)

:# write code here

#首先判斷邊界條件

if phead1==

none

:return phead2

if phead2==

none

:return phead1

#定義乙個指向表頭的指標,但是不確定這個指向表頭的指標是指向phead1的表頭還是phead2的表頭

newhead=phead1 if phead1.val#定義兩個進行判斷的判斷指標

ptmp1=phead1

ptmp2=phead2

#判斷指向表頭的指標是指向哪乙個表頭

if newhead==ptmp1:

#若指向表頭1

ptmp1=ptmp1.

next

#則判斷指標1指向下乙個值

else

: ptmp2=ptmp2.

next

#否則判斷指標2指向下乙個值

previouspointer=newhead#定義乙個起連線作用的指標

#利用指標合併鍊錶

while ptmp1 and ptmp2:

if ptmp1.val#若判斷指標1指向的值更加小

previouspointer.

next

=ptmp1#連線指標和判斷指標1指向的值相連

previouspointer=ptmp1#連線指標指向判斷指標1指向的位置

ptmp1=ptmp1.

next

#判斷指標指向下乙個值

else

: previouspointer.

next

=ptmp2

previouspointer=ptmp2

ptmp2=ptmp2.

next

if ptmp1==

none

: previouspointer.

next

=ptmp2

else

: previouspointer.

next

=ptmp1

return newhead

class

solution

:# 返回合併後列表

defmerge

(self, phead1, phead2)

:# write code here

if phead1==

none

:return phead2

if phead2==

none

:return phead1

if phead1.val<=phead2.val:

phead1.

next

=self.merge(phead1.

next

,phead2)

return phead1

if phead1.val>=phead2.val:

phead2.

next

=self.merge(phead1,phead2.

next

)return phead2

class

solution

:# 返回合併後列表

defmerge

(self, phead1, phead2)

:# write code here

tmp = listnode(0)

phead = tmp

while phead1 and phead2:

if phead1.val < phead2.val:

tmp.

next

= phead1

phead1 = phead1.

next

else

: tmp.

next

= phead2

phead2 = phead2.

next

tmp = tmp.

next

ifnot phead1:

tmp.

next

= phead2

ifnot phead2:

tmp.

next

= phead1

return phead.

next

牛客66道程式設計題 替換空格

class solution s 源字串 defreplacespace self,s write code here return s.replace 20 class solution s 源字串 defreplacespace self,s write code here s list s 把...

牛客66道程式設計題 跳台階

乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法 先後次序不同算不同的結果 當只有1個台階時,只有一種跳法,那就是1。當有2個台階時,則有兩種跳法,分別是1 1和2。當有3個台階時,則有3種跳法,分別是1 1 1,1 2和2 1。當有4個台階時,則有5種跳法,...

牛客刷題之合併兩個排序的鍊錶

輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。解題思路 構建乙個空的新鍊錶,然後對原來兩個鍊錶中的節點兩兩進行比較,第一次比較小的節點將作為新鍊錶的頭節點 最後在依次比較後續的節點並放到新的鍊錶中,最後返回新鍊錶的頭節點即可。public class l...