python单链表怎么删除节点

60次阅读
没有评论

共计 997 个字符,预计需要花费 3 分钟才能阅读完成。

要删除一个节点,需要找到该节点的前一个节点,然后将它的 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 被成功删除了。

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-13发表,共计997字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)