**如下
# coding=utf-8
classwww.cppcns.com node:
def __init__(self, data=none, next=none):
self.data = data
self.next = next
def reserver(link):
pre = link
cur = link.next
pre.next = none
whiwww.cppcns.comle cur:
tmp = cur.next
cur.next = pre
pre = cur
cur = tmp
return pre
if __name__ == "__main__":
node = node(1, node(2, node(3, node(4, node(5, node(6, node(7, node(8, node(9)))))))))
root = reserver(node)
while root:
print root.data,
root = root.next
解釋一下rev函式的實現過程:
line 9-11是將原鍊錶的第乙個節點變成了新鍊錶的最後乙個節點,同時將原鍊錶的第二個節點儲存在cur中
line13nhsfm-16就是從原鍊錶的第二個節點開始遍歷到最後乙個節點,將所有程式設計客棧節點翻轉一遍
以翻轉第二個節點為例
temp = cur.next是將cur的下乙個節點儲存在temp中,也就是第節點3,因為翻轉後,節點2的下乙個節點變成了節點1,原先節點2和節點3之間的連線斷開,通過節點2就找不到節點3了,因此需要儲存
cur.next = pre就是將節點2的下乙個節點指向了節點1
然後pre向後移動到原先cur的位置,cur也向後移動乙個節點,也就是pre = cur ,cur =temp
這就為翻轉節點3做好了準備
本文標題: python如何實現單鏈表的反轉
本文位址:
單鏈表的python實現
首先說下線性表,線性表是一種最基本,最簡單的資料結構,通俗點講就是一維的儲存資料的結構。順序表示指的是用一組位址連續的儲存單元依次儲存線性表的資料元素,稱為線性表的順序儲存結構或順序映像 鏈式表示指的是用一組任意的儲存單元儲存線性表中的資料元素,稱為線性表的鏈式儲存結構。而他既可以是連續的也可以不連...
單鏈表的Python實現
鍊錶是資料結構中最基本常用的,c 語言中單鏈表是利用指標操作實現的,python作為物件導向程式設計的,可以使用建立乙個node類來實現鍊錶,利用類的屬性引用來代替指標操作。下面我們建立了乙個節點類,然後編寫了幾個鍊錶操作,包括建立,插入,刪除,輸出等 class node 初始化 建構函式 def...
python實現單鏈表
code python code coding utf 8 class node def init self,value self.data value self.next none class linklist def init self,data 0 self.head none self.in...