算法总结

1.从根节点到叶节点的路径数字之和

给定一个二叉树的根节点 root ,树中每个节点都存放有一个 09 之间的数字。

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

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

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

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

复制代码
package com.chenghaixiang.jianzhi2.day16;

/**
 * @author 程海翔
 * @school 石家庄铁道大学
 */
public class Office049 {
}
//给定一个二叉树的根节点 root ,树中每个节点都存放有一个 0 到 9 之间的数字。
//
//每条从根节点到叶节点的路径都代表一个数字:
//
//    例如,从根节点到叶节点的路径 1 -> 2 -> 3 表示数字 123 。
//
//计算从根节点到叶节点生成的 所有数字之和 。
//
//叶节点 是指没有子节点的节点。
//输入:root = [4,9,0,5,1]
//        输出:1026
//        解释:
//        从根到叶子节点路径 4->9->5 代表数字 495
//        从根到叶子节点路径 4->9->1 代表数字 491
//        从根到叶子节点路径 4->0 代表数字 40
//        因此,数字总和 = 495 + 491 + 40 = 1026

class Solution01 {
    //深度优先搜索
    public int sumNumbers(TreeNode root) {
        return dfs(root,0);
    }

    int dfs(TreeNode root,int sum){
        if(root==null){
            return 0;
        }
        sum=sum*10+ root.val;
        if(root.right==null&&root.left==null){
            return sum;
        }else {
            return dfs(root.left,sum)+dfs(root.right,sum);
        }
    }
}
View Code
复制代码

 

posted @   chenghaixinag  阅读(28)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2020-08-29 每日日报48
点击右上角即可分享
微信分享提示