欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python遞歸實現(xiàn)鏈表快速倒轉(zhuǎn)

 更新時間:2022年05月04日 10:23:17   作者:鵬鵬寫代碼  
這篇文章主要為大家詳細(xì)介紹了python遞歸實現(xiàn)鏈表快速倒轉(zhuǎn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了python遞歸實現(xiàn)鏈表快速倒轉(zhuǎn)的具體代碼,供大家參考,具體內(nèi)容如下

案例:實現(xiàn)如下鏈表進(jìn)行倒轉(zhuǎn)

源代碼:

'''
Node 用于表示隊列中的節(jié)點;它包含兩個域。
val 表示節(jié)點的值。
next指向下一個節(jié)點
'''
#定義鏈表的數(shù)據(jù)結(jié)構(gòu)
class Node:
? ? def __init__(self,val):
? ? ? ? self.next = None
? ? ? ? self.val ?= val

class ListUtility:#生成一個用來操作的鏈表
? ? def __init__(self):
? ? ? ? self.head = None
? ? ? ? self.tail = None
? ? ? ? pass
? ? def createList(self,nodeNum):
? ? ? ? if nodeNum <= 0:
? ? ? ? ? ? return None
? ? ? ? head = None
? ? ? ? val = 0
? ? ? ? node = None
? ? ? ? while nodeNum > 0:
? ? #如果head指針為空,代碼先構(gòu)造隊列頭部,如果不為空,代碼構(gòu)造節(jié)點對象,然后用上一個節(jié)點的next指針指向當(dāng)前節(jié)點,從而將多個節(jié)點串聯(lián)成隊列。
? ? ? ? ? ? if head is None:
? ? ? ? ? ? ? ? head = Node(val)
? ? ? ? ? ? ? ? node = head
? ? ? ? ? ? else:
? ? ? ? ? ? ? ? node.next = Node(val)
? ? ? ? ? ? ? ? node = node.next
? ? ? ? ? ? ? ? self.tail = node
? ? ? ? ? ? val += 1
? ? ? ? ? ? nodeNum -= 1
? ? ? ??
? ? ? ? self.head = head
? ? ? ? return head
? ??
? ? def printList(self,head):
? ? ? ??
? ? ? ? while head is not None:
? ? ? ? ? ? print("{0}->".format(head.val),end = " ")
? ? ? ? ? ? head = head.next
? ? ? ? print("null")
? ? ? ? ? ? ? ??
class ListReverse:
? ? def __init__(self, head):
? ? ? ? self.listHead = head
? ? ? ? self.newHead = None
? ? def recursiveReverse(self, node):
? ? ? ? #如果隊列為空或者只有一個節(jié)點,那么隊列已經(jīng)倒轉(zhuǎn)完成
? ? ? ? if node is None or node.next is None:
? ? ? ? ? ? self.newHead = node
? ? ? ? ? ? return node
? ? ? ? '''
? ? ? ? 如果隊列包含多個節(jié)點,那么通過遞歸調(diào)用的方式,先把當(dāng)前節(jié)點之后所有節(jié)點實現(xiàn)倒轉(zhuǎn),
? ? ? ? 然后再把當(dāng)前節(jié)點之后節(jié)點的next指針指向自己從而完成整個列表所有節(jié)點的導(dǎo)致
? ? ? ? '''
? ? ? ? head = self.recursiveReverse(node.next)
? ? ? ? head.next = node
? ? ? ? node.next = None
? ? ? ? return node
? ? def getReverseList(self):
? ? ? ? '''
? ? ? ? listHead是原隊列頭節(jié)點,執(zhí)行recursiveReverse后newHead指向新列表的頭結(jié)點,它
? ? ? ? 對應(yīng)的其實是原列表的尾節(jié)點,而head指向新列表的尾節(jié)點
? ? ? ? '''
? ? ? ? self.recursiveReverse(self.listHead)
? ? ? ? return self.newHead
?utility = ListUtility()
head = utility.createList(10)
utility.printList(head)
#執(zhí)行倒轉(zhuǎn)算法,然后再次打印隊列,前后對比看看導(dǎo)致是否成功
reverse = ListReverse(head)
utility.printList(reverse.getReverseList()) ??

運(yùn)行結(jié)果:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python語法之語言元素和分支循環(huán)結(jié)構(gòu)詳解

    python語法之語言元素和分支循環(huán)結(jié)構(gòu)詳解

    這篇文章主要介紹了Python的語言元素和分支循環(huán)結(jié)構(gòu),本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-10-10
  • Python利用matplotlib實現(xiàn)制作動態(tài)條形圖

    Python利用matplotlib實現(xiàn)制作動態(tài)條形圖

    說到用 Python 制作動態(tài)圖,首先想到的肯定是一些直接拿來就用的庫,雖然我沒做過,但是我相信一定有且不止一個,搜了一圈后發(fā)現(xiàn)有個bar chart race庫看起來不錯,感興趣的可以跟隨小編一起學(xué)習(xí)一下
    2022-10-10
  • python實現(xiàn)掃雷游戲

    python實現(xiàn)掃雷游戲

    這篇文章主要為大家詳細(xì)介紹了python實現(xiàn)掃雷游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • opencv-python 讀取圖像并轉(zhuǎn)換顏色空間實例

    opencv-python 讀取圖像并轉(zhuǎn)換顏色空間實例

    今天小編就為大家分享一篇opencv-python 讀取圖像并轉(zhuǎn)換顏色空間實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python如何快速實現(xiàn)分布式任務(wù)

    Python如何快速實現(xiàn)分布式任務(wù)

    這篇文章主要介紹了Python如何快速實現(xiàn)分布式任務(wù),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • Python教程之無限迭代器的使用詳解

    Python教程之無限迭代器的使用詳解

    Python的Itetool是一個模塊,它提供了各種函數(shù),這些函數(shù)在迭代器上工作以產(chǎn)生復(fù)雜的迭代器。該模塊作為一個快速,內(nèi)存效率的工具,可以單獨(dú)使用或組合使用以形成迭代器代數(shù)。本文就來和大家詳細(xì)聊聊無限迭代器,感興趣的可以了解一下
    2022-09-09
  • 教你用Python讀取CSV文件的5種方式

    教你用Python讀取CSV文件的5種方式

    一個股票的數(shù)據(jù)集,其實就是常見的表格數(shù)據(jù),有自己的頭部和身體,這篇文章主要介紹了用Python讀取CSV文件的5種方式,通過五招給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2021-11-11
  • Python 異常處理的實例詳解

    Python 異常處理的實例詳解

    這篇文章主要介紹了Python 異常處理的實例詳解的相關(guān)資料,希望通過本文能幫助到大家掌握Python 異常的知識,需要的朋友可以參考下
    2017-09-09
  • SecureCRTSecure7.0查看連接密碼的步驟

    SecureCRTSecure7.0查看連接密碼的步驟

    SecureCRTSecure7密碼查看的方法大概可以分為兩個步驟,第一步需要查看系統(tǒng)保存的連接的ini文件,第二步破解加密之后的密碼,具體腳本請參考下本文
    2021-06-06
  • python使用Random隨機(jī)生成列表的方法實例

    python使用Random隨機(jī)生成列表的方法實例

    在日常的生活工作和系統(tǒng)游戲等設(shè)計和制作時,經(jīng)常會碰到產(chǎn)生隨機(jī)數(shù),用來解決問題,下面這篇文章主要給大家介紹了關(guān)于python使用Random隨機(jī)生成列表的相關(guān)資料,需要的朋友可以參考下
    2022-04-04

最新評論