📅  最后修改于: 2023-12-03 15:11:15.989000             🧑  作者: Mango
链表是一种常见的数据结构,在Python中也有常见的实现方式。本文将介绍一种Python程序,用于反转链表。
在Python中,链表可以由节点(Node)构成。每个节点包含一个值和一个指向下一个节点的引用。最后一个节点通常指向空。
下面是一个简单的Python节点类的定义:
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
链表的反转是将指向下一个节点的引用反转。具体实现方式是,将当前节点指向前一个节点,然后依次向后遍历直到链表的末尾。
下面是一个用于反转链表的Python程序:
def reverseList(head):
# 定义初始节点为None
prev = None
while head:
# 记录下一个节点
next_node = head.next
# 将当前节点指向前一个节点
head.next = prev
# 更新前一个节点为当前节点
prev = head
# 更新当前节点为下一个节点
head = next_node
# 返回反转后的链表
return prev
此Python程序定义了一个reverseList
函数来实现反转链表的功能。该函数有一个参数head
,它是链表的头节点。函数返回反转后的链表。
为了演示程序的功能,我们可以构建一个简单的链表,并调用reverseList
函数来反转它。
下面是一个用于测试的代码:
# 创建链表
node1 = ListNode(1)
node2 = ListNode(2)
node3 = ListNode(3)
node4 = ListNode(4)
node1.next = node2
node2.next = node3
node3.next = node4
# 反转链表
new_head = reverseList(node1)
# 打印反转后的链表
while new_head:
print(new_head.val, end=' ')
new_head = new_head.next
程序的输出如下:
4 3 2 1
本文介绍了一种Python程序,用于反转链表。此程序通过修改节点之间的指向来进行链表反转。此外,还展示了如何用Python定义一个简单的节点类。