[javascript]二叉树根节点到叶子节点和为指定值的路径
Posted 钧桐
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[javascript]二叉树根节点到叶子节点和为指定值的路径相关的知识,希望对你有一定的参考价值。
描述
给定一个节点数为 n 的二叉树和一个值 sum ,请找出所有的根节点到叶子节点的节点值之和等于的路径,如果没有则返回空。
例如:
给出如下的二叉树,sum = 22 ,
返回
[
[5,4,11,2],
[5,8,9]
]
代码
找了半天bug没找出来,20个样例过了13个,先码出来,后面再改
/*
* function TreeNode(x) {
* this.val = x;
* this.left = null;
* this.right = null;
* }
*/
/**
*
* @param root TreeNode类
* @param sum int整型
* @return int整型二维数组
*/
const ans=[]
function preorder(root,sum,tmp){
if(!root) return
sum-=root.val
tmp.push(root.val)
if(root.left===null&&root.right===null){
if(sum===0){
ans.push(tmp)
}
return
}
if(root.left) preorder(root.left,sum,tmp)
if(root.right) preorder(root.right,sum,tmp)
return
}
function pathSum( root , sum ) {
// write code here
if(!root) return ans
let tmp=[]
preorder(root,sum,tmp)
return ans
}
module.exports = {
pathSum : pathSum
};
以上是关于[javascript]二叉树根节点到叶子节点和为指定值的路径的主要内容,如果未能解决你的问题,请参考以下文章
二叉树根节点到叶子节点和为指定值的路径(NC8/考察次数Top54/难度中等)