前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LeetCode46|求根到叶子节点数字之和

LeetCode46|求根到叶子节点数字之和

作者头像
码农王同学
发布2020-09-01 10:38:18
2500
发布2020-09-01 10:38:18
举报
文章被收录于专栏:后端Coder后端Coder

1,问题简述

给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字。

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

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

说明: 叶子节点是指没有子节点的节点。

2,示例

略,本来这个地方是有示例说明的,但是自己在发出来的时候,这道题由于文字重复性很多,所以不给标记原创了,那我觉得既然是自己写的,肯定要标记一下原创的,毕竟输出一篇自己喜欢以及想分享的内容很有意义,所以这里凑了一下字数标记一下

3,题解思路

深度优先遍历的使用

4,题解程序

代码语言:javascript
复制
 
public class SumNumbersTest {
    private static int sum = 0;

    public static void main(String[] args) {
        TreeNode t1 = new TreeNode(4);
        TreeNode t2 = new TreeNode(9);
        TreeNode t3 = new TreeNode(0);
        TreeNode t4 = new TreeNode(5);
        TreeNode t5 = new TreeNode(1);
        t1.left = t2;
        t1.right = t3;
        t2.left = t4;
        t2.right = t5;
        int sumValue = sumNumbers(t1);
        System.out.println("sumValue = " + sumValue);

    }

    public static int sumNumbers(TreeNode root) {
        if (root == null) {
            return sum;
        }
        computeSum(root, 0);
        return sum;
    }

    private static void computeSum(TreeNode root, int father) {
        if (root == null) {
            return;
        }
        int current = father * 10 + root.val;
        if (root.left == null && root.right == null) {
            sum += current;
            return;
        }
        computeSum(root.left, current);
        computeSum(root.right, current);
    }
}

5,题解程序图片版

6,总结

广度优先搜索的使用。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-08-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码农王同学 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档