📅  最后修改于: 2023-12-03 15:42:07.858000             🧑  作者: Mango
链表是一种数据结构,其中每个节点都包含包含数据和指向下一个节点的指针,可以在其中进行数据的存储、删除、遍历等操作。本文将介绍如何在链表中删除节点。
在链表中删除节点,需要明确两个概念:待删除节点和待删除节点的前驱节点。具体实现过程如下:
找到待删除节点的前驱节点,即从链表头开始遍历,直到找到节点的 next 指针指向待删除节点为止。
将前驱节点的 next 指针指向待删除节点的 next 指针所指向的节点,即跳过待删除节点。
释放待删除节点的内存空间。
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def deleteNode(head: ListNode, val: int) -> ListNode:
if head is None:
return None
if head.val == val:
return head.next
node = head
while node.next is not None:
if node.next.val == val:
node.next = node.next.next
return head
node = node.next
return head
# 创建链表 1 -> 2 -> 3 -> 4 -> 5
n1 = ListNode(1)
n2 = ListNode(2)
n3 = ListNode(3)
n4 = ListNode(4)
n5 = ListNode(5)
n1.next = n2
n2.next = n3
n3.next = n4
n4.next = n5
# 测试删除节点 3,结果为 1 -> 2 -> 4 -> 5
deleteNode(n1, 3)
以上就是删除链表中节点的介绍,希望对你有所帮助。