数组递归函数从下往上返回所有节点数据### 功能说明 这段代码实现了一个树形结构查找功能用于获取从根节点到目标节点的路径值数组。主要针对具有父子层级关系的数据结构如组织架构、目录树等能够快速定位目标节点并返回其完整路径。 ### 代码解析 **参数说明** - tree树形数据结构数组每个节点需包含value节点标识和children子节点数组属性。 - targetValue需要查找的目标节点值。 **核心逻辑** 1. 内部定义findInTree递归函数遍历每个节点时记录当前路径。 2. 若当前节点值匹配目标值立即返回路径数组。 3. 若存在子节点递归搜索子节点并将当前路径传递下去。 4. 未找到时返回空数组。 ### 使用示例 javascript const treeData [ { value: A, children: [ { value: B, children: [{ value: D }] }, { value: C } ] } ]; console.log(findParentValues(treeData, D)); // 输出: [A, B, D]边界处理空树输入返回空数组。目标值不存在时返回空数组。支持稀疏树结构部分节点无children属性。复杂度分析时间复杂度O(n)需要遍历所有节点。空间复杂度O(h)递归栈深度取决于树的高度。应用场景文件目录路径追溯组织架构关系查询多级分类导航定位/**根据 targetValue 获取其父级到本身的路径数组从父级到子级的顺序。param tree 树形数据结构数组每个元素包含 value 和 children 属性。param targetValue 要查找的 value*/const findParentValues (tree, targetValue) {const findInTree (nodes, currentPath []) {for (const node of nodes) {const newPath […currentPath, node.value];// 如果找到目标值返回当前路径if (node.value targetValue) {return newPath;}// 如果有子节点递归查找if (node.children node.children.length 0) {const result findInTree(node.children, newPath);if (result) return result;}}return null;};return findInTree(tree) || [];};