面试算法-58-求根节点到叶节点数字之和

题目

给你一个二叉树的根节点 root ,树中每个节点都存放有一个 0 到 9 之间的数字。

每条从根节点到叶节点的路径都代表一个数字:

例如,从根节点到叶节点的路径 1 -> 2 -> 3 表示数字 123 。

计算从根节点到叶节点生成的 所有数字之和 。

叶节点 是指没有子节点的节点。

示例 1:

输入:root = [1,2,3]

输出:25

解释:

从根到叶子节点路径 1->2 代表数字 12

从根到叶子节点路径 1->3 代表数字 13

因此,数字总和 = 12 + 13 = 25

java 复制代码
class Solution {
    public int sumNumbers(TreeNode root) {
        List<Integer> res = new ArrayList<>();
        dfs(root, 0, res);
        int sum = 0;
        for (Integer item : res) {
            sum += item;
        }
        return sum;
    }

    public void dfs(TreeNode root,Integer path,List<Integer> res){
        if(root == null){
            return;
        }
        path = path *10 + root.val;
        if(root.left == null && root.right == null){
            res.add(path);
            return;
        }
        dfs(root.left,path,res);
        dfs(root.right,path,res);
    }
}
相关推荐
永远都不秃头的程序员(互关)2 小时前
【决策树深度探索(四)】揭秘“混乱”:香农熵与信息纯度的量化之旅
算法·决策树·机器学习
永远都不秃头的程序员(互关)2 小时前
【决策树深度探索(三)】树的骨架:节点、分支与叶子,构建你的第一个分类器!
算法·决策树·机器学习
Σίσυφος19002 小时前
OpenCV - SVM算法
人工智能·opencv·算法
清酒难咽8 小时前
算法案例之递归
c++·经验分享·算法
让我上个超影吧8 小时前
【力扣26&80】删除有序数组中的重复项
算法·leetcode
张张努力变强9 小时前
C++ Date日期类的设计与实现全解析
java·开发语言·c++·算法
沉默-_-9 小时前
力扣hot100滑动窗口(C++)
数据结构·c++·学习·算法·滑动窗口
钱彬 (Qian Bin)9 小时前
项目实践19—全球证件智能识别系统(优化检索算法:从MobileNet转EfficientNet)
算法·全球证件识别
feifeigo1239 小时前
基于EM算法的混合Copula MATLAB实现
开发语言·算法·matlab
漫随流水10 小时前
leetcode回溯算法(78.子集)
数据结构·算法·leetcode·回溯算法