039. 編寫一個函數,反轉一個單鏈表
- 039. 編寫一個函數,反轉一個單鏈表
- 方法 1:迭代實現
- 運行結果
- 代碼解釋
- 方法 2:遞歸實現
- 運行結果
- 代碼解釋
- 選擇方法
- 迭代法與遞歸法的區別
039. 編寫一個函數,反轉一個單鏈表
在 Python 中,可以通過迭代或遞歸的方式反轉一個單鏈表。
方法 1:迭代實現
迭代方法通過逐個反轉鏈表中的節點來實現反轉。以下是迭代實現的代碼:
class ListNode:"""定義鏈表的節點類。"""def __init__(self, value=0, next=None):self.value = valueself.next = nextdef reverse_linked_list(head):"""使用迭代方法反轉單鏈表。參數:head (ListNode): 鏈表的頭節點。返回:ListNode: 反轉后的鏈表的頭節點。"""prev = None # 初始化前一個節點為 Nonecurrent = head # 當前節點從頭節點開始while current:next_node = current.next # 保存下一個節點current.next = prev # 反轉當前節點的指針prev = current # 前一個節點向前移動current = next_node # 當前節點向前移動return prev # 返回新的頭節點# 測試代碼
# 創建一個鏈表:1 -> 2 -> 3 -> 4
node1 = ListNode(1)
node2 = ListNode(2)
node3 = ListNode(</