python如何實(shí)現(xiàn)單向鏈表及單向鏈表的反轉(zhuǎn)
鏈表的定義
鏈表中的每個節(jié)點(diǎn)會存儲相鄰節(jié)點(diǎn)的位置信息,單鏈表中的每個節(jié)點(diǎn)只存儲下一關(guān)節(jié)點(diǎn)的位置信息
單向鏈表的實(shí)現(xiàn)
class ListNode: def __init__(self, val): self.val = val self.next = None
要實(shí)現(xiàn)單向鏈表只需要把幾個節(jié)點(diǎn)關(guān)聯(lián)起來就可以了,把一個節(jié)點(diǎn)的next設(shè)置為另一個節(jié)點(diǎn)就可以了,例如創(chuàng)建一個A->B->C 的單向鏈表可以這么寫:
first_node = ListNode("A") second_node = ListNode("B") third_node = ListNode("C") first_node.next = second_node second_node.next = third_noe
first_node 就是這個鏈表的表頭,他們3個一起組成了一個單向鏈表
單向鏈表反轉(zhuǎn)
class Solution: def reverse(self, head): prev = None current = head while current: middle, current.next = current.next, prev prev, current = current, middle return prev
反轉(zhuǎn)的時候,先實(shí)例化Solution對象,然后調(diào)用reverse函數(shù)把鏈表的表頭first_node 傳進(jìn)去:
solution = Solution() result = solution.reverse(first_node)
如果你想查看這個鏈表的內(nèi)容順序,可以這樣寫:
print(result.val, result.next.val, result.next.next.val)
終端輸出結(jié)果為CBA,符合要求
以上就是python如何實(shí)現(xiàn)單向鏈表及單向鏈表的反轉(zhuǎn)的詳細(xì)內(nèi)容,更多關(guān)于python 單向鏈表的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python使用requests模塊發(fā)送http請求的方法介紹
Python?Requests是一個?HTTP?庫,它允許我們向?Web?服務(wù)器發(fā)送??HTTP?請求,并獲取響應(yīng)結(jié)果,本文將會詳細(xì)介紹Python?requests模塊如何發(fā)送http請求,文中有相關(guān)的代碼示例,需要的朋友可以參考下2023-06-06pytorch 狀態(tài)字典:state_dict使用詳解
今天小編就為大家分享一篇pytorch 狀態(tài)字典:state_dict使用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01Python OpenCV 圖像區(qū)域輪廓標(biāo)記(框選各種小紙條)
這篇文章主要介紹了Python OpenCV 圖像區(qū)域輪廓標(biāo)記(框選各種小紙條),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03