📌  相关文章
📜  用于在链表中间插入节点的 Javascript 程序(1)

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

在链表中间插入节点的 JavaScript 程序

在 JavaScript 中,可以使用链表来存储和操作数据。其中,插入节点是常见的操作之一。本文将介绍如何使用 JavaScript 编写用于在链表中间插入节点的程序。

链表数据结构的表示

要操作链表,首先需要定义链表数据结构的表示。通常,链表中的节点包含两个部分:数据和指向下一个节点的指针。因此,可以定义一个对象来表示一个单向链表的节点:

class ListNode {
  constructor(val) {
    this.val = val;
    this.next = null;
  }
}

这个对象包含一个 val 属性,用于存储节点的值,以及一个 next 属性,用于指向下一个节点。

在链表中间插入节点的实现

在已有的链表中插入节点,需要先找到要插入的位置,然后在该位置创建一个新的节点,并将其指针指向原来的下一个节点。最后,将原来节点指针指向新的节点。

具体实现可以使用一个循环来遍历链表,找到插入位置的前一个节点。代码如下:

function insertNode(head, index, val) {
  if (index === 0) {
    const newNode = new ListNode(val);
    newNode.next = head;
    return newNode;
  }

  let cur = head;
  let i = 0;
  while (i < index - 1 && cur !== null) {
    cur = cur.next;
    i++;
  }

  if (cur === null) return head;

  const newNode = new ListNode(val);
  newNode.next = cur.next;
  cur.next = newNode;
  return head;
}

这个函数接受三个参数:链表头节点 head、要插入的位置 index、以及要插入的值 val。如果 index 等于 0,说明要在链表开头插入节点,此时直接创建一个新的节点,并将其指针指向原来的头节点即可。否则,使用循环找到要插入位置的前一个节点。如果找到的节点为空,说明插入位置不合法,返回原来的链表头节点。否则,创建一个新的节点,并将其指针指向原来的下一个节点。最后,将原来节点的指针指向新的节点,并返回原来的头节点。

结语

在 JavaScript 中,使用链表操作数据可以提高代码的效率,并且链表操作也是一项基础的计算机科学技能。希望本文的介绍能够帮助读者掌握链表插入节点的方法。