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

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

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

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

案例:實現(xià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指針指向當前節(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)用的方式,先把當前節(jié)點之后所有節(jié)點實現(xiàn)倒轉(zhuǎn),
? ? ? ? 然后再把當前節(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()) ??

運行結(jié)果:

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

相關(guān)文章

  • Python如何自動獲取目標網(wǎng)站最新通知

    Python如何自動獲取目標網(wǎng)站最新通知

    這篇文章主要介紹了Python如何自動獲取目標網(wǎng)站最新通知,本文給大家分享實現(xiàn)思路及示例代碼,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • Python3中str、bytes、bytearray轉(zhuǎn)化

    Python3中str、bytes、bytearray轉(zhuǎn)化

    本文主要介紹了Python3中str、bytes、bytearray轉(zhuǎn)化,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • Python2寫csv文件中文亂碼問題及解決方法

    Python2寫csv文件中文亂碼問題及解決方法

    python2最大的坑在于中文編碼問題,遇到中文報錯首先加u,再各種encode、decode,這篇文章給大家介紹Python2寫csv文件中文亂碼問題及解決方法,感興趣的朋友跟隨小編一起看看吧
    2022-11-11
  • 詳解python上傳文件和字符到PHP服務(wù)器

    詳解python上傳文件和字符到PHP服務(wù)器

    本篇內(nèi)容主要給大家介紹了在python中上傳字符或者文件到PHP服務(wù)器的相關(guān)實現(xiàn)代碼,如果你正好用得到,一起學(xué)習(xí)下。
    2017-11-11
  • 徹底弄懂Python中的回調(diào)函數(shù)(callback)

    徹底弄懂Python中的回調(diào)函數(shù)(callback)

    回調(diào)函數(shù)就是一個通過函數(shù)指針調(diào)用的函數(shù),下面這篇文章主要給大家介紹了關(guān)于Python中回調(diào)函數(shù)(callback)的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-06-06
  • django表單的Widgets使用詳解

    django表單的Widgets使用詳解

    這篇文章主要介紹了django表單的Widgets,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • Python練習(xí)之ORM框架

    Python練習(xí)之ORM框架

    這篇文章主要介紹了Python練習(xí)之ORM框架,通過使用SQLObject框架操作MySQL數(shù)據(jù)庫展開文章主題詳細內(nèi)容,具有一定的參考價值,需要的朋友可以參考一下
    2022-06-06
  • python全局變量引用與修改過程解析

    python全局變量引用與修改過程解析

    這篇文章主要介紹了python全局變量引用與修改過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-01-01
  • Python calendar日歷模塊的應(yīng)用案例演示

    Python calendar日歷模塊的應(yīng)用案例演示

    calendar模塊是python用來處理日歷的模塊,通過不同的api和格式輸出多種形式的日歷格式,下面就通過不同的api和參數(shù)來輸出和學(xué)習(xí)calendar模塊的用法
    2023-06-06
  • 你知道嗎實現(xiàn)炫酷可視化只要1行python代碼

    你知道嗎實現(xiàn)炫酷可視化只要1行python代碼

    這篇文章主要給大家介紹了關(guān)于利用Python進行數(shù)據(jù)可視化常見的9種方法!文中介紹的方法真的超實用!對大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-08-08

最新評論

道孚县| 游戏| 兴山县| 泰安市| 赤水市| 昌江| 淮南市| 淮滨县| 海伦市| 镇雄县| 桓仁| 田东县| 凌海市| 喜德县| 澄迈县| 玉山县| 比如县| 忻州市| 沈阳市| 象山县| 顺平县| 曲松县| 富蕴县| 邳州市| 吉林市| 定襄县| 化隆| 镶黄旗| 台州市| 九龙城区| 菏泽市| 和龙市| 松原市| 探索| 泸州市| 醴陵市| 花莲市| 西平县| 家居| 济源市| 平乡县|