You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何传入LinkedList的每个数值未对应到独立Node?

链表数值无法绑定到独立Node的问题排查与修复

核心问题拆解

  • 逗号表达式误用:你写的const nums = (4, 5, 8, 2, 0, 4, 22);是JS的逗号表达式,它的返回值是最后一个表达式结果,也就是22——所以nums实际是单个数值,不是数组,这直接导致传入链表构造函数时只有一个值被处理。
  • 数组传递方式错误:如果直接把数组传给new LinkedList(nums),构造函数的...values会把整个数组当作单个参数接收,push方法会把整个数组当成一个节点的值,而非遍历数组元素生成独立节点。
  • 关于"仅能生成2层深度Node":你的push方法逻辑本身没问题,只要参数传递正确,每个数值都会生成独立节点,这个误解本质还是参数传递错误导致的。

修复步骤

1. 正确定义数组

把逗号表达式改成数组字面量:

const nums = [4, 5, 8, 2, 0, 4, 22];

2. 正确传递数组元素到链表构造函数

用展开语法把数组元素逐个传入构造函数,让...values接收到每个独立数值:

const LinkedList1 = new LinkedList(...nums);

3. 验证修复效果

此时LinkedList1会为每个数值生成独立Node,后续调用push(1)会在尾部添加值为1的节点,整个链表节点顺序为:4 → 5 → 8 → 2 → 0 → 4 → 22 → 1。

额外验证示例

可以用contains方法测试节点是否正确生成:

console.log(LinkedList1.contains(8)); // 输出 true
console.log(LinkedList1.contains(99)); // 输出 false

修正后的关键代码片段

// 正确定义数组
const nums = [4, 5, 8, 2, 0, 4, 22];
// 使用展开语法传递数组元素
const LinkedList1 = new LinkedList(...nums);
LinkedList1.push(1);
console.log(LinkedList1);

内容的提问来源于stack exchange,提问作者user22525141

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 04:22:44