当前位置:首页 > JavaScript

js实现链表思路

2026-04-07 13:19:31JavaScript

实现链表的基本结构

链表由节点(Node)组成,每个节点包含两个部分:

  • value:存储数据
  • next:指向下一个节点的引用(默认为 null
class Node {
  constructor(value) {
    this.value = value;
    this.next = null;
  }
}

初始化链表

链表类(LinkedList)需维护一个头节点(head)和链表长度(size):

class LinkedList {
  constructor() {
    this.head = null;
    this.size = 0;
  }
}

插入节点

尾部插入
遍历链表找到最后一个节点,将新节点链接到其 next

js实现链表思路

append(value) {
  const newNode = new Node(value);
  if (!this.head) {
    this.head = newNode;
  } else {
    let current = this.head;
    while (current.next) {
      current = current.next;
    }
    current.next = newNode;
  }
  this.size++;
}

头部插入
新节点的 next 指向原头节点,并更新链表的 head

prepend(value) {
  const newNode = new Node(value);
  newNode.next = this.head;
  this.head = newNode;
  this.size++;
}

删除节点

按值删除
遍历链表找到目标节点的前驱节点,修改其 next 以跳过目标节点:

js实现链表思路

remove(value) {
  if (!this.head) return;
  if (this.head.value === value) {
    this.head = this.head.next;
    this.size--;
    return;
  }
  let current = this.head;
  while (current.next) {
    if (current.next.value === value) {
      current.next = current.next.next;
      this.size--;
      return;
    }
    current = current.next;
  }
}

查找节点

遍历链表,匹配目标值:

contains(value) {
  let current = this.head;
  while (current) {
    if (current.value === value) {
      return true;
    }
    current = current.next;
  }
  return false;
}

遍历链表

输出所有节点的值:

print() {
  let current = this.head;
  const values = [];
  while (current) {
    values.push(current.value);
    current = current.next;
  }
  console.log(values.join(" -> "));
}

示例用法

const list = new LinkedList();
list.append(1);
list.append(2);
list.prepend(0);
list.print(); // 输出: 0 -> 1 -> 2
list.remove(1);
list.print(); // 输出: 0 -> 2
console.log(list.contains(2)); // 输出: true

标签: 思路链表
分享给朋友:

相关文章

vue实现抽奖转盘实现思路

vue实现抽奖转盘实现思路

Vue 抽奖转盘实现思路 核心逻辑 通过 CSS 旋转动画和 Vue 的数据绑定实现转盘动态效果,结合随机数生成中奖结果。 实现步骤 数据准备 定义奖品列表和转盘扇区角度: data() {…

vue实现文件上传思路

vue实现文件上传思路

Vue 文件上传实现思路 使用原生 HTML5 文件上传 通过 <input type="file"> 元素结合 Vue 的数据绑定和事件处理实现基础文件上传功能。 <templa…

react banner实现思路

react banner实现思路

实现React Banner的基本思路 使用React实现Banner组件需要考虑动态展示、交互效果以及响应式设计。以下是常见的实现方法: 使用状态管理控制当前展示项 通过React的useStat…

php链表实现

php链表实现

PHP 链表实现 链表是一种线性数据结构,由节点组成,每个节点包含数据和指向下一个节点的指针。在 PHP 中,可以通过类来实现链表。 链表节点类 链表的基本单位是节点,通常包含数据(data)和指向…

php实现链表操作

php实现链表操作

PHP实现链表基础结构 链表由节点(Node)构成,每个节点包含数据域和指向下一个节点的指针。以下是单向链表的节点类实现: class ListNode { public $data;…

链表的实现js

链表的实现js

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据部分和指向下一个节点的指针。与数组不同,链表在内存中是非连续存储的,动态增删节点更高效。 单链表的实现 class List…