K12教育赛事综合服务平台
聚乐之家官方网站
下载聚乐之家官方App
专注青少年竞赛题库网站
假设单链表节点定义如下:
class ListNode: def __init__(self, val=0, next=None): self.val = val self.next = next
现给定单链表的头结点head,需要删除值等于target的第一个节点。
head
target
若要删除的节点是头结点,只需将head指向head.next即可,时间复杂度为O(1)
若要删除的是中间节点,只需直接修改该节点的val和next指针,无需遍历链表,时间复杂度O(1)
删除任意节点的最坏时间复杂度是O(n),最好时间复杂度是O(log n)
删除节点操作完成后,被删除的节点会被Python自动立即回收内存,无需任何额外处理