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时记下回溯。请添加您尝试过的代码。堆栈溢出上有数百个树遍历示例。我遍历了树,但在回溯中遇到了问题。找到根和给定节点之间的路径,然后将其反转。例如,您可以使用深度优先搜索来实现这一点。