📌  相关文章
📜  用于删除链表中节点的Python程序(1)

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

Python程序:用于删除链表中节点

链表是一种常见的数据结构,在Python中它可以容易地通过类来实现。删除链表中的节点也是常见的操作,本文将介绍如何用Python编写一个简单的程序来删除链表中的节点。

实现思路

我们可以使用两个指针来遍历链表,一个指针p指向要删除的节点,另一个指针q指向p的前一个节点。

具体实现步骤如下:

  1. 遍历链表,找到要删除的节点p以及它的前一个节点q
  2. 修改q节点的next指针,使其指向p节点的下一个节点,从而跳过p节点
  3. 如果要删除的是链表的第一个节点,需要特殊处理
Python代码实现
class ListNode:
    def __init__(self, val=0, next=None):
        self.val = val
        self.next = next

def deleteNode(head: ListNode, val: int) -> ListNode:
    if not head:
        return head

    if head.val == val:
        return head.next

    prev = None
    curr = head

    while curr and curr.val != val:
        prev = curr
        curr = curr.next

    if not curr:
        return head

    prev.next = curr.next

    return head
使用示例

如下面示例代码所示,我们可以将一个列表转换成一个链表,然后删除其中的一个节点并打印删除后的链表。

if __name__ == '__main__':
    # 将一个列表转换成链表
    nodes = [1, 2, 3, 4, 5]
    head = ListNode(nodes[0])
    last = head
    for val in nodes[1:]:
        last.next = ListNode(val)
        last = last.next

    # 删除链表中的一个节点
    new_head = deleteNode(head, 3)

    # 打印删除后的链表
    curr = new_head
    while curr:
        print(curr.val, end=' ')
        curr = curr.next

输出结果如下:

1 2 4 5
总结

使用Python实现链表的操作十分简单,通过定义一个链表节点类,我们可以轻松地实现链表增、删、改、查等操作。本文介绍了如何实现删除链表节点的操作,并给出了完整的Python代码示例。