🧩 问题概述

在链表操作中,删除节点是基础但关键的技能。常见场景包括:

  • 删除单链表中指定值的节点
  • 删除双向链表中的节点
  • 删除中间节点(需调整前后指针)

⚠️ 注意:若删除头节点需特殊处理,建议参考 删除链表节点教程

📝 解题思路

  1. 定位目标节点
    通过遍历找到要删除的节点位置

    链表删除节点示意图
  2. 调整指针指向
    将前一个节点的next指向后一个节点

    指针操作示例
  3. 处理边界情况

    • 删除头节点:需更新头指针
    • 删除尾节点:需找到前驱节点
    • 空链表情况:直接返回null
    代码逻辑流程

💡 代码示例(Java)

public void deleteNode(ListNode node) {
    if (node == null || node.next == null) return;
    node.val = node.next.val;
    node.next = node.next.next;
}

🚀 扩展练习

尝试以下相关题目巩固理解: