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

Python實現(xiàn)單鏈表中元素的反轉

 更新時間:2022年05月05日 16:41:24   作者:bebr  
這篇文章主要為大家詳細介紹了Python實現(xiàn)單鏈表中元素的反轉,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

給定一個單鏈表,將其反轉。其實很容易想到,只需要修改每個結點的指針指向:即令后一個結點指向前一個結點,并且將表頭指針指向最后一個結點即可。

這個過程可以用循環(huán)實現(xiàn),也可以用遞歸來實現(xiàn)。

1、用循環(huán)來實現(xiàn):

class LNode:
? ? def __init__(self, elem):
? ? ? ? self.elem = elem
? ? ? ? self.pnext = None
?
def reverse(head):
? ? if head is None or head.pnext is None: #如果輸入的鏈表是空或者只有一個結點,直接返回當前結點
? ? ? ? return head
? ? pre = None #用來指向上一個結點
? ? cur = newhead = head #cur是當前的結點。newhead指向當前新的頭結點
? ? while cur:
? ? ? ? newhead = cur
? ? ? ? temp = cur.pnext
? ? ? ? cur.pnext = pre #將當前的結點的指針指向前一個結點
? ? ? ? pre = cur
? ? ? ? cur = temp
? ? return newhead
?
if __name__=="__main__":
? ? head = LNode(1)
? ? p1 = LNode(2)
? ? p2 = LNode(3)
? ? head.pnext = p1
? ? p1.pnext = p2
? ? p = reverse(head)
? ? while p:
? ? ? ? print(p.elem)
? ? ? ? p = p.pnext

2、用遞歸來實現(xiàn):

class LNode:
? ? def __init__(self, elem):
? ? ? ? self.elem = elem
? ? ? ? self.pnext = None
?
def reverse(head):
? ? if not head or not head.pnext:
? ? ? ? return head
? ? else:
? ? ? ? newhead = reverse(head.pnext)
? ? ? ? head.pnext.pnext = head #令下一個結點的指針指向當前結點
? ? ? ? head.pnext = None #斷開當前結點與下一個結點之間的指針指向聯(lián)系,令其指向空
? ? ? ? return newhead
?
?
if __name__=="__main__":
? ? head = LNode(1)
? ? p1 = LNode(2)
? ? p2 = LNode(3)
? ? head.pnext = p1
? ? p1.pnext = p2
? ? p = reverse(head)
? ? while p:
? ? ? ? print(p.elem)
? ? ? ? p = p.pnext

以下是圖解遞歸的詳細過程:

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

相關文章

  • 狀態(tài)機的概念和在Python下使用狀態(tài)機的教程

    狀態(tài)機的概念和在Python下使用狀態(tài)機的教程

    這篇文章主要介紹了狀態(tài)機的概念和在Python下使用狀態(tài)機的教程,本文來自于IBM官方開發(fā)者技術文檔,需要的朋友可以參考下
    2015-04-04
  • Pytorch抽取網(wǎng)絡層的Feature Map(Vgg)實例

    Pytorch抽取網(wǎng)絡層的Feature Map(Vgg)實例

    今天小編就為大家分享一篇Pytorch抽取網(wǎng)絡層的Feature Map(Vgg)實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • Python Selenium破解滑塊驗證碼最新版(GEETEST95%以上通過率)

    Python Selenium破解滑塊驗證碼最新版(GEETEST95%以上通過率)

    這篇文章主要介紹了Python Selenium破解滑塊驗證碼最新版(GEETEST95%以上通過率),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • Django單元測試中Fixtures用法詳解

    Django單元測試中Fixtures用法詳解

    這篇文章主要介紹了Django單元測試中Fixtures用法,通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • pytorch visdom安裝開啟及使用方法

    pytorch visdom安裝開啟及使用方法

    這篇文章主要介紹了pytorch visdom安裝開啟及使用方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • python對ip地址進行排序、分類的方法詳解

    python對ip地址進行排序、分類的方法詳解

    這篇文章主要介紹了python對ip地址進行排序、分類的方法詳解,IP協(xié)議全稱為“網(wǎng)際互連協(xié)議Internet?Protocol”,IP協(xié)議是TCP/IP體系中的網(wǎng)絡層協(xié)議,需要的朋友可以參考下
    2023-07-07
  • Python PyQt5學習之樣式設置詳解

    Python PyQt5學習之樣式設置詳解

    這篇文章主要為大家詳細介紹了Python PyQt5中樣式設置的相關資料,例如為標簽添加背景圖片、為按鈕添加背景圖片、設置窗口透明等,感興趣的可以學習一下
    2022-12-12
  • python實現(xiàn)讀取Excel內(nèi)容并展示成json

    python實現(xiàn)讀取Excel內(nèi)容并展示成json

    這篇文章主要為大家詳細介紹了如何使用python實現(xiàn)讀取Excel內(nèi)容并展示成json功能,文中的示例代碼講解詳細,感興趣的小伙伴可以參考一下
    2023-12-12
  • 淺談python中常用的excel模塊庫

    淺談python中常用的excel模塊庫

    本文主要介紹了python中常用的excel模塊庫,感興趣的同學,可以參考下。
    2021-06-06
  • python 輪詢執(zhí)行某函數(shù)的2種方式

    python 輪詢執(zhí)行某函數(shù)的2種方式

    這篇文章主要介紹了python 輪詢執(zhí)行某函數(shù)的2種方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05

最新評論