//本题中的路径指的是从根结点到叶节点
var tree={
root:1,
rchild:{
root:2,
rchild:null,
lchild:{
root:1,
rchild:null,
lchild:null,
}
},
lchild:{
root:3,
rchild:null,
lchild:null
}
}
function findPath(tree,Num){
var result = []
if(tree.root===null){
return result
}
dnsfind(tree,Num,0,[],result)
return result
}
function dnsfind(tree,Num,currentSum,path,result){
currentSum+=tree.root
path.push(tree.root)
//当叶节点满足要求
if(currentSum===Num&&tree.rchild===null&&tree.lchild===null){
result.push(path.slice(0))
//因为path是引用类型,遍历结束后,path会pop会根结点,也就是变为[],如果这里直接存储path的话,最后也会变成[]
}
//前序遍历
if(tree.lchild!
二叉树找到和为n的所有路径
最新推荐文章于 2024-01-25 20:18:16 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)