python如何實(shí)現(xiàn)單向鏈表及單向鏈表的反轉(zhuǎn)
鏈表中的每個(gè)節(jié)點(diǎn)會(huì)存儲(chǔ)相鄰節(jié)點(diǎn)的位置信息,單鏈表中的每個(gè)節(jié)點(diǎn)只存儲(chǔ)下一關(guān)節(jié)點(diǎn)的位置信息
class ListNode: def __init__(self, val): self.val = val self.next = None
要實(shí)現(xiàn)單向鏈表只需要把幾個(gè)節(jié)點(diǎn)關(guān)聯(lián)起來(lái)就可以了,把一個(gè)節(jié)點(diǎn)的next設(shè)置為另一個(gè)節(jié)點(diǎn)就可以了,例如創(chuàng)建一個(gè)A->B->C 的單向鏈表可以這么寫(xiě):
first_node = ListNode('A') second_node = ListNode('B') third_node = ListNode('C') first_node.next = second_node second_node.next = third_noe
first_node 就是這個(gè)鏈表的表頭,他們3個(gè)一起組成了一個(gè)單向鏈表
單向鏈表反轉(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í)候,先實(shí)例化Solution對(duì)象,然后調(diào)用reverse函數(shù)把鏈表的表頭first_node 傳進(jìn)去:
solution = Solution()result = solution.reverse(first_node)
如果你想查看這個(gè)鏈表的內(nèi)容順序,可以這樣寫(xiě):
print(result.val, result.next.val, result.next.next.val)
終端輸出結(jié)果為CBA,符合要求
以上就是python如何實(shí)現(xiàn)單向鏈表及單向鏈表的反轉(zhuǎn)的詳細(xì)內(nèi)容,更多關(guān)于python 單向鏈表的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. 基于javascript處理二進(jìn)制圖片流過(guò)程詳解2. JS sort方法基于數(shù)組對(duì)象屬性值排序3. ASP中解決“對(duì)象關(guān)閉時(shí),不允許操作。”的詭異問(wèn)題……4. JAVA上加密算法的實(shí)現(xiàn)用例5. Django-migrate報(bào)錯(cuò)問(wèn)題解決方案6. ajax請(qǐng)求添加自定義header參數(shù)代碼7. ASP刪除img標(biāo)簽的style屬性只保留src的正則函數(shù)8. Gitlab CI-CD自動(dòng)化部署SpringBoot項(xiàng)目的方法步驟9. 使用Python和百度語(yǔ)音識(shí)別生成視頻字幕的實(shí)現(xiàn)10. 淺談SpringMVC jsp前臺(tái)獲取參數(shù)的方式 EL表達(dá)式
