最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

對python實(shí)現(xiàn)合并兩個排序鏈表的方法詳解

 更新時(shí)間:2019年01月23日 10:36:22   作者:chrispink_yang  
今天小編就為大家分享一篇對python實(shí)現(xiàn)合并兩個排序鏈表的方法詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

輸入兩個單調(diào)遞增的鏈表,輸出兩個鏈表合成后的鏈表,當(dāng)然我們需要合成后的鏈表滿足單調(diào)不減規(guī)則。

1、迭代方法

  def Merge(self, pHead1, pHead2):
    p1, p2 = pHead1, pHead2
    if p1 and p2:
      if p1.val < p2.val:
        head = p1
        p1 = p1.next
      else:
        head = p2
        p2 = p2.next
      cur = head
    elif p1:
      return p1
    else:
      return p2

    while p1 and p2:
      if p1.val < p2.val:
        cur.next = p1
        p1 = p1.next
      else:
        cur.next = p2
        p2 = p2.next
      cur = cur.next
    if p1:
      cur.next = p1
    else:
      cur.next = p2
    return head

2、遞歸方法

  def Merge_rcv(self, pHead1, pHead2):
    if not pHead1:
      return pHead2
    if not pHead2:
      return pHead1
    if pHead1.val < pHead2.val:
      pres = pHead1
      pres.next = self.Merge(pHead1.next, pHead2)
    else:
      pres = pHead2
      pres.next = self.Merge(pHead1, pHead2.next)
    return pres

附注:

遞歸算法運(yùn)行邏輯看著復(fù)雜,但是形式上都是簡單的.每一層都表達(dá)了”當(dāng)前結(jié)點(diǎn)要做的任務(wù)”.

思考遞歸算法的步驟應(yīng)該是

1) 明確每一層要做的任務(wù),eg,選擇鏈表中較小值作為當(dāng)前結(jié)點(diǎn)

2) 明確每一層的任務(wù)的完結(jié)點(diǎn)和遞歸連接點(diǎn),eg,在pres.next處進(jìn)行下一層遞歸

3) 明確return條件,eg,當(dāng)p1,p2其中有一個為空時(shí),遞歸任務(wù)結(jié)束

幾乎所有的遞歸算法都可以沿著這三個要求思考構(gòu)造,很自然不怕寫遞歸算法,三個問題能自己在腦里回答出來,稍加修飾就是一個完整的遞歸算法.

這也是函數(shù)式編程的魅力所在.

以上這篇對python實(shí)現(xiàn)合并兩個排序鏈表的方法詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python用opencv完成圖像分割并進(jìn)行目標(biāo)物的提取

    python用opencv完成圖像分割并進(jìn)行目標(biāo)物的提取

    這篇文章主要介紹了python用opencv完成圖像分割并進(jìn)行目標(biāo)物的提取,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • Django處理Ajax發(fā)送的Get請求代碼詳解

    Django處理Ajax發(fā)送的Get請求代碼詳解

    在本篇文章里小編給大家整理了關(guān)于Django處理Ajax發(fā)送的Get請求代碼知識點(diǎn),有需要的朋友們參考學(xué)習(xí)下。
    2019-07-07
  • pytorch Variable與Tensor合并后 requires_grad()默認(rèn)與修改方式

    pytorch Variable與Tensor合并后 requires_grad()默認(rèn)與修改方式

    這篇文章主要介紹了pytorch Variable與Tensor合并后 requires_grad()默認(rèn)與修改方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-05-05
  • Python中如何檢查字符串是否包含列表中的元素

    Python中如何檢查字符串是否包含列表中的元素

    在數(shù)據(jù)預(yù)處理或糾錯的過程中可能會用到對列表中是否含有我們需要的字符串的判斷,下面這篇文章主要給大家介紹了關(guān)于Python中如何檢查字符串是否包含列表中的元素的相關(guān)資料,需要的朋友可以參考下
    2023-06-06
  • Python使用xlrd輕松讀取Excel文件的示例代碼

    Python使用xlrd輕松讀取Excel文件的示例代碼

    本文主要介紹了使用 Python 的 xlrd 庫讀取 Excel 文件的方法,包括安裝、各種操作如工作表操作、單元格操作、行與列操作、處理不同數(shù)據(jù)類型、性能優(yōu)化、結(jié)合其他庫、自定義處理等,還提到了一些特殊情況的處理及自定義類封裝讀取邏輯,需要的朋友可以參考下
    2024-11-11
  • 淺談Django REST Framework限速

    淺談Django REST Framework限速

    這篇文章主要介紹了淺談Django REST Framework限速,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • PyCharm導(dǎo)入python項(xiàng)目并配置虛擬環(huán)境的教程詳解

    PyCharm導(dǎo)入python項(xiàng)目并配置虛擬環(huán)境的教程詳解

    這篇文章主要介紹了Pycharm導(dǎo)入python項(xiàng)目并配置虛擬環(huán)境的教程,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Python中的常見數(shù)據(jù)集打亂方法

    Python中的常見數(shù)據(jù)集打亂方法

    這篇文章主要介紹了Python中的常見數(shù)據(jù)集打亂方法,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Python爬蟲部分開篇概念講解

    Python爬蟲部分開篇概念講解

    在學(xué)習(xí)Python爬蟲部分,需要已經(jīng)學(xué)過Python基礎(chǔ)和前端的相關(guān)知識,本文對python爬蟲概念及原理給大家詳細(xì)介紹,需要的朋友跟隨小編一起看看吧
    2021-04-04
  • python Jieba分詞處理詳解【模式,詞庫的添加、刪除,自定義詞庫,失敗處理等】

    python Jieba分詞處理詳解【模式,詞庫的添加、刪除,自定義詞庫,失敗處理等】

    這篇文章主要介紹了python Jieba分詞處理,結(jié)合實(shí)例形式詳細(xì)分析了python 使用jieba分詞的模式,詞庫的添加、刪除,自定義詞庫,失敗處理等相關(guān)操作技巧,需要的朋友可以參考下
    2023-07-07

最新評論

凯里市| 宝坻区| 永春县| 宜川县| 财经| 青冈县| 喀喇| 寿光市| 普定县| 同心县| 霍林郭勒市| 花垣县| 措美县| 云南省| 珠海市| 东光县| 定日县| 衢州市| 金昌市| 尼木县| 九寨沟县| 内乡县| 进贤县| 阿拉善右旗| 武邑县| 岗巴县| 赤峰市| 西平县| 石家庄市| 保靖县| 锦屏县| 新和县| 邹平县| 灵武市| 梅河口市| 康乐县| 麦盖提县| 鞍山市| 清苑县| 葫芦岛市| 夏津县|