📌  相关文章
📜  在给定约束下删除链表中给定节点的 Javascript 程序(1)

📅  最后修改于: 2023-12-03 15:23:37.295000             🧑  作者: Mango

在给定约束下删除链表中给定节点的 Javascript 程序

在 JavaScript 中,删除链表中的节点需要考虑到以下约束:

  • 给定的节点不是链表的头节点
  • 给定的节点不是链表的尾节点

针对这些约束条件,我们可以采用如下的算法:

  1. 将给定节点的 next 节点的值拷贝到给定节点中;
  2. 将给定节点的 next 指针指向给定节点的 next 节点的 next 节点;
  3. 销毁给定节点的 next 节点。

下面是示例 JavaScript 程序,用于实现上述算法:

/**
 * Definition for singly-linked list.
 * function ListNode(val, next) {
 *     this.val = (val===undefined ? 0 : val)
 *     this.next = (next===undefined ? null : next)
 * }
 */

 /**
  * @param {ListNode} node
  * @return {void} Do not return anything, modify node in-place instead.
  */
const deleteNode = function(node) {
  if (!node || !node.next) {
    return;
  }

  const next = node.next;
  node.val = next.val;
  node.next = next.next;
  next.next = null;
  delete next;
};

其中,ListNode 表示一个单链表的节点。

调用 deleteNode(node) 就可以删除给定节点,且满足上述约束条件。