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

如何在JavaScript中遍历Linked List,提取所有val值到nums数组?

从嵌套对象链表中提取所有val值到数组

给定如下嵌套对象形式的链表结构:

let list = {
        val: 3,
        next: {
            val: 4,
            next: {
                val: 2,
                next: {
                    val: 7,
                    next: null,
                },
            },
        },
    };

我们需要把所有节点的val值提取到名为nums的数组中,最终得到[3,4,2,7]。

方法一:循环遍历

这是最直观且高效的方式,通过指针遍历链表的每个节点,收集val值直到链表末尾:

const nums = [];
let current = list;

while (current) {
    nums.push(current.val);
    // 移动到下一个节点
    current = current.next;
}

console.log(nums); // 输出 [3,4,2,7]

方法二:递归实现

如果偏爱更简洁的代码逻辑,可以用递归处理每个节点,直到遇到null终止:

function getNodeValues(node) {
    if (!node) return [];
    // 收集当前节点val,再递归处理下一个节点
    return [node.val, ...getNodeValues(node.next)];
}

const nums = getNodeValues(list);
console.log(nums); // 输出 [3,4,2,7]

两种方法的区别:循环遍历不会产生额外的调用栈开销,适合处理超长链表;递归写法更简洁易懂,但链表过长时可能触发栈溢出。

内容的提问来源于stack exchange,提问作者Ala Eddine Menai

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 00:45:03