單鏈表反轉(zhuǎn)python實(shí)現(xiàn)代碼示例
單鏈表的反轉(zhuǎn)可以使用循環(huán),也可以使用遞歸的方式
1.循環(huán)反轉(zhuǎn)單鏈表
循環(huán)的方法中,使用pre指向前一個(gè)結(jié)點(diǎn),cur指向當(dāng)前結(jié)點(diǎn),每次把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); #測(cè)試代碼
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.遞歸實(shí)現(xiàn)單鏈表反轉(zhuǎn)
class ListNode:
def __init__(self,x):
self.val=x;
self.next=None;
def recurse(head,newhead): #遞歸,head為原鏈表的頭結(jié)點(diǎn),newhead為反轉(zhuǎn)后鏈表的頭結(jié)點(diǎn)
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); #測(cè)試代碼
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;
運(yùn)行結(jié)果同上。
總結(jié)
以上就是本文關(guān)于單鏈表反轉(zhuǎn)python實(shí)現(xiàn)代碼示例的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!
相關(guān)文章
Python pandas 重命名索引和列名稱的實(shí)現(xiàn)
本文主要介紹了Python pandas 重命名索引和列名稱的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
在CMD窗口中調(diào)用python函數(shù)的實(shí)現(xiàn)
本文主要介紹了在CMD窗口中調(diào)用python函數(shù)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
Python實(shí)現(xiàn)隨機(jī)生成迷宮并自動(dòng)尋路
最近在學(xué)習(xí)Python,正好今天在學(xué)習(xí)隨機(jī)數(shù),本文實(shí)現(xiàn)了Python實(shí)現(xiàn)隨機(jī)生成迷宮并自動(dòng)尋路,感興趣的可以了解一下2021-06-06
跟老齊學(xué)Python之玩轉(zhuǎn)字符串(3)
字符串是一個(gè)很長(zhǎng)的話題,縱然現(xiàn)在開(kāi)始第三部分,但是也不能完全說(shuō)盡。因?yàn)樽址亲匀徽Z(yǔ)言中最復(fù)雜的東西,也是承載功能最多的,計(jì)算機(jī)高級(jí)語(yǔ)言編程,要解決自然語(yǔ)言中的問(wèn)題,讓自然語(yǔ)言中完成的事情在計(jì)算機(jī)上完成,所以,也不得不有更多的話題。2014-09-09
使用Python為Excel文件添加預(yù)設(shè)和自定義文檔屬性
向Excel文件添加文檔屬性是專業(yè)地組織和管理電子表格數(shù)據(jù)的關(guān)鍵步驟,這些屬性,如標(biāo)題、作者、主題和關(guān)鍵詞,增強(qiáng)了文件的元數(shù)據(jù),使得在大型數(shù)據(jù)庫(kù)或文件系統(tǒng)中跟蹤變得更加容易,本文將介紹如何使用Python高效地為Excel文件添加文檔屬性,需要的朋友可以參考下2024-05-05

