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

單鏈表反轉(zhuǎn)python實現(xiàn)代碼示例

 更新時間:2018年02月08日 11:07:53   作者:零丁若嘆  
這篇文章主要介紹了單鏈表反轉(zhuǎn)python實現(xiàn),分享了相關(guān)代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下

單鏈表的反轉(zhuǎn)可以使用循環(huán),也可以使用遞歸的方式

1.循環(huán)反轉(zhuǎn)單鏈表

循環(huán)的方法中,使用pre指向前一個結(jié)點,cur指向當(dāng)前結(jié)點,每次把cur->next指向pre即可。

代碼:

class ListNode: 
  def __init__(self,x): 
    self.val=x; 
    self.next=None; 
 
def nonrecurse(head):       #循環(huán)的方法反轉(zhuǎn)鏈表 
  if head is None or head.next is None: 
    return head; 
  pre=None; 
  cur=head; 
  h=head; 
  while cur: 
    h=cur; 
    tmp=cur.next; 
    cur.next=pre; 
    pre=cur; 
    cur=tmp; 
  return h; 
   
head=ListNode(1);  #測試代碼 
p1=ListNode(2);   #建立鏈表1->2->3->4->None; 
p2=ListNode(3); 
p3=ListNode(4); 
head.next=p1; 
p1.next=p2; 
p2.next=p3; 
p=nonrecurse(head);  #輸出鏈表 4->3->2->1->None 
while p: 
  print p.val; 
  p=p.next; 

結(jié)果:

4
3
2
1
>>>

2.遞歸實現(xiàn)單鏈表反轉(zhuǎn)

class ListNode: 
  def __init__(self,x): 
    self.val=x; 
    self.next=None; 
 
   
def recurse(head,newhead):  #遞歸,head為原鏈表的頭結(jié)點,newhead為反轉(zhuǎn)后鏈表的頭結(jié)點 
  if head is None: 
    return ; 
  if head.next is None: 
    newhead=head; 
  else : 
    newhead=recurse(head.next,newhead); 
    head.next.next=head; 
    head.next=None; 
  return newhead; 
   
head=ListNode(1);        #測試代碼 
p1=ListNode(2);         # 建立鏈表1->2->3->4->None 
p2=ListNode(3); 
p3=ListNode(4); 
head.next=p1; 
p1.next=p2; 
p2.next=p3; 
newhead=None; 
p=recurse(head,newhead);      #輸出鏈表4->3->2->1->None 
while p: 
  print p.val; 
  p=p.next; 

運行結(jié)果同上。

總結(jié)

以上就是本文關(guān)于單鏈表反轉(zhuǎn)python實現(xiàn)代碼示例的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

相關(guān)文章

  • pandas學(xué)習(xí)之df.set_index的具體使用

    pandas學(xué)習(xí)之df.set_index的具體使用

    本文主要介紹了pandas學(xué)習(xí)之df.set_index的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • Python使用Pickle庫實現(xiàn)讀寫序列操作示例

    Python使用Pickle庫實現(xiàn)讀寫序列操作示例

    這篇文章主要介紹了Python使用Pickle庫實現(xiàn)讀寫序列操作,結(jié)合實例形式分析了pickle模塊的功能、常用函數(shù)以及序列化與反序列化相關(guān)操作技巧,需要的朋友可以參考下
    2018-06-06
  • Python淺析迭代器Iterator的使用

    Python淺析迭代器Iterator的使用

    這篇文章主要介紹了Python?迭代器Iterator詳情,迭代器可以幫助我們解決面對復(fù)雜的數(shù)據(jù)場景時,快速簡便的獲取數(shù)據(jù),下文關(guān)于其詳細介紹,需要的小伙伴可以參考一下
    2022-07-07
  • python多線程互斥鎖與死鎖

    python多線程互斥鎖與死鎖

    這篇文章主要介紹了python多線程互斥鎖與死鎖,多線程間的資源競爭下文我們就以task1(),task2()兩個函數(shù)為例,分別將對全局變量num加一重復(fù)一千萬次循環(huán),具有一定得參考價值,需要的小伙伴可以參考一下
    2022-02-02
  • python使用XPath解析數(shù)據(jù)爬取起點小說網(wǎng)數(shù)據(jù)

    python使用XPath解析數(shù)據(jù)爬取起點小說網(wǎng)數(shù)據(jù)

    這篇文章主要介紹了python使用XPath解析數(shù)據(jù)爬取起點小說網(wǎng)數(shù)據(jù),幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-04-04
  • 利用pandas合并多個excel的方法示例

    利用pandas合并多個excel的方法示例

    這篇文章主要介紹了利用pandas合并多個excel的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • 用Python繪制一個仿黑洞圖像

    用Python繪制一個仿黑洞圖像

    黑洞圖像大家都知道,畢竟前幾年剛發(fā)布的時候曾火遍全網(wǎng),甚至都做成表情包了。本文就來用Python繪制一個仿黑洞圖像,希望大家能夠喜歡
    2023-02-02
  • Django中間件基礎(chǔ)用法詳解

    Django中間件基礎(chǔ)用法詳解

    這篇文章主要介紹了Django中間件基礎(chǔ)用法詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • Python過濾序列元素的方法

    Python過濾序列元素的方法

    這篇文章主要介紹了Python過濾序列元素的方法,文中講解非常細致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • numpy實現(xiàn)RNN原理實現(xiàn)

    numpy實現(xiàn)RNN原理實現(xiàn)

    這篇文章主要介紹了numpy實現(xiàn)RNN原理實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03

最新評論