【Python练习】039. 编写一个函数,反转一个单链表
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(</