Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从给定节点查找树中父节点的路径_Javascript_Algorithm_Data Structures_Tree - Fatal编程技术网

Javascript 从给定节点查找树中父节点的路径

Javascript 从给定节点查找树中父节点的路径,javascript,algorithm,data-structures,tree,Javascript,Algorithm,Data Structures,Tree,给定下面描述的树,给定节点,比如9打印从给定节点到根节点的路径 let sampleData = { id: 1, children: [{ id: 2, children: [{ id: 5, children: [{ id: 8 }] }, { id: 6 } ] }, { id: 3, chi

给定下面描述的
树,给定
节点,比如
9
打印从给定节点到
根节点的路径

let sampleData = {
id: 1,
children: [{
    id: 2,
    children: [{
        id: 5,
        children: [{
            id: 8
        }]
    },
        {
            id: 6
        }
    ]
},
    {
        id: 3,
        children: [{
            id: 9
        }, {id: 10 }]}, {
        id: 4
     }
     ]
  }

例如,如果给定了9,那么输出应该是
1、3、9

,正如建议的那样,您可以使用dfs算法

函数dfs(o,目标){
if(o.id==target)返回[target];
如果(!o.children)返回false;
让路;
o、 find(x=>path=dfs(x,目标));
如果(路径){
返回[o.id].concat(路径);
}
};
让sampleData={“id”:1,“children”:[{“id”:2,“children”:[{“id”:5,“children”:[{“id”:8}]},{“id”:6}]},{“id”:3,“children”:[{“id”:9},{“id”:10},{“id”:4}}
让路;
[sampleData].find(x=>path=dfs(x,9))

console.log(路径)一旦找到要查找的id,我们就可以使用DFS和回溯来转换此输入。继续执行dfs,并在到达IDPlease时记下回溯。请添加您尝试过的代码。堆栈溢出上有数百个树遍历示例。我遍历了树,但在回溯中遇到了问题。找到根和给定节点之间的路径,然后将其反转。例如,您可以使用深度优先搜索来实现这一点。