Java-LeetCode129. 求根到叶子节点数字之和-递归

二叉树根节点到叶子节点的所有路径和

http://www.nowcoder.com/questionTerminal/185a87cd29eb42049132aed873273e83

  • 算法
    • 1.递归
    • 2.重载一个函数sumNumbers(TreeNode root, int sum)表示计算到root节点为止的sum值
    • 3.当左右子节点都为null时,是叶子节点,返回sum
    • 4.当左或右子节点不为null时,不是叶子节点,递归计算左或右子节点的sum值
public int sumNumbers(TreeNode root) {
    if (root == null) {
        return 0;
    }

    return sumNumbers(root, root.val);
}

private int sumNumbers(TreeNode root, int sum) {
    if (root.left == null && root.right == null) {
        return sum;
    } else {
        int result = 0;
        if (root.left != null) {
            result += sumNumbers(root.left, sum * 10 + root.left.val);
        }
        if (root.right != null) {
            result += sumNumbers(root.right, sum * 10 + root.right.val);
        }
        return result;
    }
}
全部评论

相关推荐

09-25 00:00
已编辑
电子科技大学 Java
球球与墩墩:这不是前端常考的对象扁平化吗,面试官像是前端出来的 const flattern = (obj) => { const res = {}; const dfs = (curr, path) => { if(typeof curr === 'object' && curr !== null) { const isArray = Array.isArray(curr); for(let key in curr) { const newPath = path ? isArray ? `${path}[${key}]` : `${path}.${key}` : key; dfs(curr[key], newPath); } } else { res[path] = curr } } dfs(obj); return res; }
查看3道真题和解析
点赞 评论 收藏
分享
评论
18
8
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务