📌  相关文章
📜  用于反转链表的Python程序(1)

📅  最后修改于: 2023-12-03 15:11:15.989000             🧑  作者: Mango

用于反转链表的Python程序

链表是一种常见的数据结构,在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定义一个简单的节点类。