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

python遞歸&迭代方法實(shí)現(xiàn)鏈表反轉(zhuǎn)

 更新時(shí)間:2022年02月21日 11:29:07   作者:驚瑟  
這篇文章主要介紹了python遞歸&迭代方法實(shí)現(xiàn)鏈表反轉(zhuǎn),文章分享一段詳細(xì)實(shí)現(xiàn)代碼,需要的小伙伴可以參考一下,希望對(duì)你的學(xué)習(xí)或工作有所幫助

定義鏈表node結(jié)構(gòu):

class ListNode:
?
? ? def __init__(self,data):
? ? ? ? self.data = data
? ? ? ? self.next = None

將L轉(zhuǎn)化為鏈表:

def make_list(L):

將L初始化為鏈表:

? head = ListNode(L[0])
? ? cur = head
? ? for i in L[1:]:
? ? ? ? cur.next = ListNode(i)
? ? ? ? cur = cur.next
? ? return head
?

遍歷鏈表:

def print_list(head):
?
? ? cur = head
? ? while cur != None:
? ? ? ? print(cur.data,end=' ')
? ? ? ? cur = cur.next
?

遞歸法  反轉(zhuǎn)鏈表:

def reverse_list(head):

三要素:

  • 1.明確函數(shù)功能,該函數(shù)可以將鏈表反轉(zhuǎn),并返回一個(gè)頭節(jié)點(diǎn)
  • 2.結(jié)束條件:當(dāng)鏈表為空或只有一個(gè)節(jié)點(diǎn)時(shí)返回
? ? if head==None or head.next==None:
? ? ? ? return head
  • 3.等價(jià)條件(縮小范圍),對(duì)于數(shù)組來講,縮小范圍是n——>n-1,對(duì)于鏈表來講則可以考慮head——
>head.next
? ? reverse = reverse_list(head.next) ?#假設(shè)reverse是head以后的、已經(jīng)反轉(zhuǎn)過的鏈表

接下來要做的是將head節(jié)點(diǎn)接到已經(jīng)反轉(zhuǎn)過的reverse上:

? ? tmp = head.next
? ? tmp.next = head
? ? head.next = None
?return reverse ?#返回新的列表

迭代法:

def reverse_list2(head):
? ? #print_list(head)
? ? cur = head
? ? pre = None
? ? while cur:
? ? ? ? tmp = cur.next
? ? ? ? cur.next = pre
? ? ? ? pre = cur
? ? ? ? cur = tmp
? ? head = pre
? ? return head
?
if __name__ == '__main__':
?
? ? L = [3,2,7,8]
? ? head = make_list(L)
?

正序打印:

? ? print('原始list:')
? ? print_list(head)
? ? print('\n')
?

反轉(zhuǎn)后打?。?/strong>

? ? revere = reverse_list(head)
? ? print('反轉(zhuǎn)一次的list:')
? ? print_list(revere)
? ? print('\n')
?

反轉(zhuǎn)2:

? ? print('head is')
? ? print_list(head) ?#發(fā)現(xiàn)此時(shí)head節(jié)點(diǎn)變成了最后一個(gè)節(jié)點(diǎn),說明函數(shù)是對(duì)head這個(gè)實(shí)例直接作用的
? ? print('\n')
?
? ? # print('revere is')
? ? # print_list(revere)
? ? # print('\n')
?
? ? print('反轉(zhuǎn)兩次的list:')
? ? print_list(reverse_list2(revere))

到此這篇關(guān)于python遞歸&迭代方法實(shí)現(xiàn)鏈表反轉(zhuǎn)的文章就介紹到這了,更多相關(guān)python鏈表反轉(zhuǎn)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python實(shí)現(xiàn)簡易自習(xí)室座位預(yù)約系統(tǒng)

    python實(shí)現(xiàn)簡易自習(xí)室座位預(yù)約系統(tǒng)

    本文將結(jié)合實(shí)例代碼,介紹python實(shí)現(xiàn)簡易自習(xí)室座位預(yù)約系統(tǒng),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • Python在for循環(huán)里處理大數(shù)據(jù)的推薦方法實(shí)例

    Python在for循環(huán)里處理大數(shù)據(jù)的推薦方法實(shí)例

    這篇文章主要介紹了Python在for循環(huán)里處理大數(shù)據(jù)的推薦方法實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • python+matplotlib繪制3D條形圖實(shí)例代碼

    python+matplotlib繪制3D條形圖實(shí)例代碼

    這篇文章主要介紹了python+matplotlib繪制3D條形圖實(shí)例代碼,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • K-近鄰算法的python實(shí)現(xiàn)代碼分享

    K-近鄰算法的python實(shí)現(xiàn)代碼分享

    這篇文章主要介紹了K-近鄰算法的python實(shí)現(xiàn)代碼分享,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • pycharm?使用conda虛擬環(huán)境的詳細(xì)配置過程

    pycharm?使用conda虛擬環(huán)境的詳細(xì)配置過程

    這篇文章主要介紹了pycharm?使用conda虛擬環(huán)境,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • python和c語言哪個(gè)更適合初學(xué)者

    python和c語言哪個(gè)更適合初學(xué)者

    在本篇文章里小編給大家分享的是一篇關(guān)于python和c語言哪個(gè)更適合初學(xué)者的相關(guān)文章,有興趣的朋友們學(xué)習(xí)下。
    2020-06-06
  • Pycharm操作Git及GitHub的步驟詳解

    Pycharm操作Git及GitHub的步驟詳解

    這篇文章主要介紹了Pycharm操作Git及GitHub的步驟詳解,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • Python爬取門戶論壇評(píng)論淺談Python未來發(fā)展方向

    Python爬取門戶論壇評(píng)論淺談Python未來發(fā)展方向

    這篇文章主要介紹了如何實(shí)現(xiàn)Python爬取門戶論壇評(píng)論,附含圖片示例代碼,講解了詳細(xì)的操作過程,有需要的的朋友可以借鑒參考下,希望可以有所幫助
    2021-09-09
  • Python BS4庫的安裝與使用詳解

    Python BS4庫的安裝與使用詳解

    這篇文章主要介紹了Python BS4庫的安裝與使用詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-08-08
  • Python?GUI布局工具Tkinter入門之旅

    Python?GUI布局工具Tkinter入門之旅

    這篇文章主要為大家介紹了Python?GUI布局工具Tkinter的基礎(chǔ),Tkinter?作為?Python?的標(biāo)準(zhǔn)庫,是非常流行的?Python?GUI?工具,同時(shí)也是非常容易學(xué)習(xí)的,今天我們就來開啟?Tkinter的入門之旅
    2022-08-08

最新評(píng)論

德昌县| 梅河口市| 安顺市| 自贡市| 长宁区| SHOW| 南岸区| 多伦县| 曲松县| 通许县| 东兰县| 马关县| 石楼县| 保德县| 林甸县| 禹州市| 石门县| 文登市| 项城市| 宝山区| 吉木萨尔县| 巴马| 南开区| 东乡族自治县| 禹城市| 翁牛特旗| 报价| 喜德县| 海门市| 乌审旗| 富源县| 亳州市| 肥城市| 麦盖提县| 晴隆县| 宜兰市| 沅陵县| 石景山区| 菏泽市| 偃师市| 大余县|