题解 | #二叉树中和为某一值的路径(二)#

二叉树中和为某一值的路径(二)

https://www.nowcoder.com/practice/b736e784e3e34731af99065031301bca

/* function TreeNode(x) {
    this.val = x;
    this.left = null;
    this.right = null;
} */
function FindPath(root, expectNumber)
{
    // write code here    
    const path = [];
    const result = [];
    
    this.findSumPath = function(node,sum) {
        if(node === null) return;
             
        path.push(node.val);//非空把节点值放入path 
        sum -= node.val;//减去走过节点的值
        
        // 遍历到叶子节点且满足路径和
        if(node.left === null && node.right === null && sum === 0) {
                result.push([...path]);//放进result时注意解构拷贝path
        }
        //先序遍历: 递归左 / 右子节点
        this.findSumPath(node.left,sum);
        this.findSumPath(node.right,sum);
        //路向上回溯前,需要将当前节点从路径 path 中删除
        path.pop();
    }
    
    this.findSumPath(root,expectNumber);
    return result;
}
module.exports = {
    FindPath : FindPath
};

全部评论

相关推荐

点赞 评论 收藏
分享
2024-12-18 14:13
蚌埠坦克学院 golang
苏州科技大学:面试官:接个面试,对面同学是个杀软二次元
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务