📜  删除链表中间的Javascript程序(1)

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

删除链表中间节点的JavaScript程序

当我们要删除链表中间节点时,需要遍历整个链表来找到中间节点,然后将其删除。以下是一个JavaScript程序,用于删除链表中间节点。

1. 创建链表节点类

在开始之前,我们需要创建一个链表节点的类。以下是一个简单的示例。

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

每个链表节点都有一个值val和一个指向下一个节点的指针next。

2. 删除链表中间节点

下面是删除链表中间节点的JavaScript程序。它用两个指针来遍历链表,一个指针每次移动2步,另一个指针每次移动1步。当第一个指针到达链表末尾时,第二个指针将指向中间节点。

function deleteMiddleNode(head) {
  let slow = head;
  let fast = head;
  let prev = null;

  while (fast && fast.next) {
    prev = slow;
    slow = slow.next;
    fast = fast.next.next;
  }

  prev.next = slow.next;
  return head;
}
参数说明:
  • head:链表头节点;
程序说明:
  1. 定义两个指针slow和fast,它们都指向链表的头节点head;
  2. 创建一个变量prev,它将指向slow的前一个节点;
  3. 使用while循环来遍历链表,当fast指针到达链表末尾时,slow将指向链表的中间节点;
  4. 从while循环退出后,使用prev.next = slow.next语句将slow节点从链表中删除;
  5. 返回链表的头节点head。
3. 总结

以上是一个简单的JavaScript程序,用于删除链表中间节点。该程序使用了两个指针来遍历链表,非常高效。希望这篇文章能够帮助你更好地理解链表和指针在JavaScript中的使用。