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

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

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

定義鏈表node結構:

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

將L轉化為鏈表:

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
?

遞歸法  反轉鏈表:

def reverse_list(head):

三要素:

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

接下來要做的是將head節(jié)點接到已經反轉過的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)
?

正序打?。?/strong>

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

反轉后打?。?/strong>

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

反轉2:

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

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

相關文章

  • python對Excel的讀取的示例代碼

    python對Excel的讀取的示例代碼

    這篇文章主要介紹了python對Excel的讀取的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02
  • python數(shù)據類型bytes?和?bytearray的使用與區(qū)別

    python數(shù)據類型bytes?和?bytearray的使用與區(qū)別

    本文主要介紹了python數(shù)據類型bytes?和?bytearray的使用與區(qū)別,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • python隨機模塊random的22種函數(shù)(小結)

    python隨機模塊random的22種函數(shù)(小結)

    這篇文章主要介紹了python隨機模塊random的22種函數(shù),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-05-05
  • 深入解析Python中的多進程

    深入解析Python中的多進程

    這篇文章主要介紹了深入解析Python中的多進程,“Python中的多進程是通過multiprocessing包來實現(xiàn)的,和多線程的threading.Thread差不多,它可以利用multiprocessing.Process對象來創(chuàng)建一個進程對象
    2022-06-06
  • python 調用HBase的簡單實例

    python 調用HBase的簡單實例

    下面小編就為大家?guī)硪黄猵ython 調用HBase的簡單實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • Django 內置權限擴展案例詳解

    Django 內置權限擴展案例詳解

    這篇文章主要介紹了Django 內置權限擴展案例詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • Django JWT Token RestfulAPI用戶認證詳解

    Django JWT Token RestfulAPI用戶認證詳解

    這篇文章主要介紹了Django JWT Token RestfulAPI用戶認證詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • Python使用numpy模塊創(chuàng)建數(shù)組操作示例

    Python使用numpy模塊創(chuàng)建數(shù)組操作示例

    這篇文章主要介紹了Python使用numpy模塊創(chuàng)建數(shù)組操作,結合實例形式分析了Python使用numpy模塊實現(xiàn)數(shù)組的創(chuàng)建、賦值、修改、打印等相關操作技巧與注意事項,需要的朋友可以參考下
    2018-06-06
  • pandas 根據列的值選取所有行的示例

    pandas 根據列的值選取所有行的示例

    今天小編就為大家分享一篇pandas 根據列的值選取所有行的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • 3種適用于Python的瘋狂秘密武器及原因解析

    3種適用于Python的瘋狂秘密武器及原因解析

    這篇文章主要介紹了3種適用于Python的瘋狂秘密武器,本文給大家分享問題原因解析,通過實例代碼圖文的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04

最新評論