参考答案

可以通过以下步骤实现:

  1. 遍历链表,找到待删除节点的前一个节点。
  2. 将待删除节点的前一个节点的 next 指针指向待删除节点的下一个节点。
  3. 将待删除节点置为 null。

下面是示例代码,假设链表的每个节点都有 val 和 next 两个属性:

function deleteNode(head, val) { // 如果要删除的节点是头节点,则直接返回 head.next if (head.val === val) { return head.next; } let prev = head; let curr = head.next; while (curr !== null) { if (curr.val === val) { prev.next = curr.next; curr = null; break; } else { prev = curr; curr = curr.next; } } return head; }

首先检查待删除节点是否为头节点。如果是,则直接返回头节点的下一个节点;否则,我们遍历链表并找到待删除节点的前一个节点和当前节点。

当找到该节点时,我们将前一个节点的 next 指针指向待删除节点的下一个节点,并将待删除节点置为 null,以便 JavaScript 的垃圾回收机制能够回收内存,避免内存泄漏。

最后,我们返回头节点作为函数的结果。