CP139 · 列表转树 arrayToTree

中等前端手撕核心代码模式仅 JavaScriptMap时限 1000 ms(参考)
题目描述

实现 arrayToTree(list):把带 id / parentId 的扁平列表转成树(森林)。每个结点输出 { id, name, children },children 为子结点数组(无子结点时为空数组),子结点按在列表中出现的顺序排列;parentId 为 null 或在列表中找不到的结点视为根,根按出现顺序排列。要求只遍历列表常数次(不得对每个结点重复扫描整个列表)。本题为「核心代码模式 · 仅 JavaScript」:模板已内置 JSON 读入与输出脚手架,只需补全指定函数。

输入描述

一行 JSON:{"list": [{"id", "parentId", "name"}...]},id 为整数且互不相同。

输出描述

一行:根结点数组的 JSON。