python如何實現單向鏈表及單向鏈表的反轉

鏈表的定義

鏈表中的每個節點會存儲相鄰節點的位置信息,單鏈表中的每個節點隻存儲下一關節點的位置信息

單向鏈表的實現

class ListNode:
  def __init__(self, val):
    self.val = val
    self.next = None

要實現單向鏈表隻需要把幾個節點關聯起來就可以瞭,把一個節點的next設置為另一個節點就可以瞭,例如創建一個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個一起組成瞭一個單向鏈表

單向鏈表反轉

class Solution:
  def reverse(self, head):
    prev = None
    current = head
    while current:
      middle, current.next = current.next, prev
      prev, current = current, middle
    return prev

反轉的時候,先實例化Solution對象,然後調用reverse函數把鏈表的表頭first_node 傳進去:

solution = Solution()
result = solution.reverse(first_node)

如果你想查看這個鏈表的內容順序,可以這樣寫:

print(result.val, result.next.val, result.next.next.val)

終端輸出結果為CBA,符合要求

以上就是python如何實現單向鏈表及單向鏈表的反轉的詳細內容,更多關於python 單向鏈表的資料請關註WalkonNet其它相關文章!