链表删除节点的基本思路:

  1. 找到待删除节点的前一个节点 prevNode
  2. 将 prevNode 的 next 指针指向待删除节点的下一个节点 nextNode
  3. 释放待删除节点的内存空间

代码实现:

class ListNode:
    def __init__(self, val=0, next=None):
        self.val = val
        self.next = next

def deleteNode(head: ListNode, val: int) -> ListNode:
    # 处理头节点的情况
    if head.val == val:
        return head.next

    # 找到待删除节点的前一个节点
    prevNode = head
    while prevNode.next and prevNode.next.val != val:
        prevNode = prevNode.next

    # 待删除节点不存在
    if prevNode.next is None:
        return head

    # 删除节点
    prevNode.next = prevNode.next.next

    return head

其中,head 表示链表的头节点,val 表示要删除的节点的值。如果要删除的是头节点,直接返回 head.next 即可。否则,遍历链表找到待删除节点的前一个节点 prevNode,然后将 prevNode 的 next 指针指向待删除节点的下一个节点 nextNode,最后释放待删除节点的内存空间。

链表怎么删除节点

原文地址: https://www.cveoy.top/t/topic/DsS 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录