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