117.info
人生若只如初见

python单链表怎么删除节点

要删除一个节点,需要找到该节点的前一个节点,然后将它的next指针指向要删除节点的下一个节点。

以下是一个示例代码,演示如何删除单链表中的节点:

# 定义节点类
class ListNode:
    def __init__(self, data):
        self.data = data
        self.next = None

# 定义单链表类
class LinkedList:
    def __init__(self):
        self.head = None

    # 在链表尾部插入节点
    def append(self, data):
        new_node = ListNode(data)
        if self.head is None:
            self.head = new_node
        else:
            current = self.head
            while current.next:
                current = current.next
            current.next = new_node

    # 删除指定节点
    def delete(self, data):
        if self.head is None:
            return

        # 如果要删除的节点是头节点
        if self.head.data == data:
            self.head = self.head.next
            return

        current = self.head
        while current.next:
            if current.next.data == data:
                current.next = current.next.next
                return
            current = current.next

    # 打印链表
    def print_list(self):
        current = self.head
        while current:
            print(current.data, end=" ")
            current = current.next
        print()

# 创建一个链表对象
llist = LinkedList()

# 在链表中插入节点
llist.append(1)
llist.append(2)
llist.append(3)
llist.append(4)
llist.append(5)

# 打印原始链表
print("原始链表:")
llist.print_list()

# 删除节点 3
llist.delete(3)

# 打印删除节点后的链表
print("删除节点后的链表:")
llist.print_list()

运行上述代码,输出结果为:

原始链表:
1 2 3 4 5 
删除节点后的链表:
1 2 4 5 

可以看到,节点3被成功删除了。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fe09bAzsLAgdQA1M.html

推荐文章

  • python怎么读取文件夹下所有文件

    要读取文件夹下的所有文件,可以使用os模块和os.walk()函数。下面是一个示例代码:
    import os def read_files_in_folder(folder_path): for root, dirs, fi...

  • python怎么调用fortran动态库

    要在Python中调用Fortran动态库,可以使用ctypes库。下面是一个简单的示例:
    首先,编写Fortran代码并将其编译为动态库。假设我们有一个名为mylib.f90的For...

  • 怎么用python读取data数据

    要使用Python读取数据,你可以使用以下几种方法: 使用内置的open()函数打开文件,然后使用read()方法读取数据。例如: with open('data.txt', 'r') as file: da...

  • python爱心跳动代码怎么写

    以下是一个简单的Python爱心跳动效果的代码示例:
    import time def print_heart(): heart = [ " ❤️ ❤️ ", " ❤️ ❤️ ", "❤️ ❤️", " ❤️ ❤️ ",...

  • C++中stretchdibits调用失败怎么解决

    在C++中,stretchdibits函数用于将位图从一个设备环境(如内存中的位图或屏幕上的位图)复制到另一个设备环境中。如果调用stretchdibits函数失败,可能是由于以下...

  • android反编译工具怎么用

    要使用Android反编译工具,您可以遵循以下步骤: 下载和安装反编译工具,例如apktool、dex2jar、JD-GUI等。您可以在官方网站或GitHub上找到这些工具。 打开命令提...

  • PLSQL调试的步骤是什么

    PL/SQL调试的步骤主要包括以下几个方面: 设置调试环境:在数据库中设置调试器的启用和参数配置,通常使用Oracle提供的调试工具(如Oracle SQL Developer、PL/SQ...

  • docker怎么上传镜像到仓库

    要将镜像上传到仓库,首先需要登录到Docker仓库,然后将本地的镜像标记为仓库地址,最后将标记后的镜像推送到仓库。
    以下是上传镜像到Docker仓库的步骤: 登...