剑指offer JS题解 (24)二叉树中和为某一值的路径

题目描述

输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。

解题思路

从根节点出发,寻找一条到叶结点的路径,路径上的值之和等于输入整数。由此可以知道是树的深度遍历,并且可能存在零条,一条,多条路径,需要维护一个结果数组来记录下所有可能的路径,详细见代码。

Code

/* function TreeNode(x) {
    this.val = x;
    this.left = null;
    this.right = null;
} */
function FindPath(root, expectNumber)
{
    // write code here
    if(!root) return [];
    let result=[];
    var res=[];
    recur(root,expectNumber,res,result);
    return result;
}
function recur(node,num,res,result){
    if(!node) return;
    res=[...res,node.val];
    if(!node.left&&!node.right&&node.val==num)
        result.push(res);
    if(node.left)
        recur(node.left,num-node.val,res,result);
    if(node.right)
        recur(node.right,num-node.val,res,result);
}

运行环境:JavaScript (V8 6.0.0)
运行时间:12ms
占用内存:5244k

猜你喜欢

转载自blog.csdn.net/qq_40340478/article/details/106183435