合併兩個排序的鍊錶

2022-06-11 17:30:10 字數 823 閱讀 9080

1

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

class listnode:3#

def __init__(self, x):4#

self.val = x5#

self.next = none

6class

solution:7#

返回合併後列表

8def

merge(self, phead1, phead2):9#

write code here

10if phead1 is none: #

首先考慮極端的特殊情況

11return

phead2

12if phead2 is

none:

13return

phead1

14 pmergehead =none

15if phead1.val16 pmergehead =phead1

17 pmergehead.next = self.merge(phead1.next,phead2) #

這裡遞迴的時候方法的呼叫依然要用類例項.方法,而類中的self就是指類例項

18else

:19 pmergehead =phead2

20 pmergehead.next =self.merge(phead2.next,phead1)

21return pmergehead #

遞迴的輸出是兩個鍊錶排序合併後的列表的指標(就是這個鍊錶)

合併兩個排序鍊錶

struct listnode class solution else while pstart1 null pstart2 null plast next pstart1 plast pend1 pend1 pend1 next pstart1 pend1 else plast next psta...

合併兩個排序鍊錶

描述 將兩個排序鍊錶合併為乙個新的排序鍊錶樣例 給出1 3 8 11 15 null,2 null,返回1 2 3 8 11 15 null。解題思路 將兩個鍊錶當中的對應元素的值進行比較,重新確定新鍊錶當中元素的位置。若第乙個鍊錶當前位置的值小於第二個鍊錶當前值,則不需要改變位置,第乙個鍊錶的指標...

合併兩個排序鍊錶

問題描述 將兩個排序鍊錶合併為乙個新的排序鍊錶 樣例 給出1 3 8 11 15 null,2 null,返回1 2 3 8 11 15 null。解題思路 遍歷第二個鍊錶的每乙個節點,然後與第乙個節點的第乙個節點比較,如果第二個鍊錶節點的值小於第乙個,就插入到第乙個煉表裡,如果大於就到下乙個節點。...