求根节点到叶节点数字之和

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

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

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

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

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

示例说明请见LeetCode官网。

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/sum-root-to-leaf-numbers/

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解法一:递归法

使用递归法解决此问题,递归过程如下:

  • 首先,如果当前节点为null,说明是空树,直接返回;
  • 如果当前节点不是nll,将当前节点的值添加到 path 中;
  • 然后判断当前节点没有左右子节点,说明是叶子节点,将当前的路径值加到result中,然后返回;
  • 如果当前节点的左节点不为空时,递归处理左节点;
  • 如果当前节点的右节点不为空时,递归处理右节点。

最后,返回result即为结果值。

import com.kaesar.leetcode.TreeNode;

public class LeetCode_129 {
// 最终的累加值
private static int result = 0; public static int sumNumbers(TreeNode root) {
sumNumbers(root, "");
return result;
} /**
* 递归法
*
* @param root
* @param path
*/
private static void sumNumbers(TreeNode root, String path) {
// 如果当前节点为null,说明是空树,直接返回
if (root == null) {
return;
}
// 将当前节点的值添加到 path 中
path += root.val;
// 如果当前节点没有左右子节点,说明是叶子节点,将当前的路径值加到result中,然后返回
if (root.left == null && root.right == null) {
result += Integer.valueOf(path);
return;
}
if (root.left != null) {
// 当前节点的左节点不为空时,递归处理左节点
sumNumbers(root.left, path);
}
if (root.right != null) {
// 当前节点的右节点不为空时,递归处理右节点
sumNumbers(root.right, path);
}
} public static void main(String[] args) {
TreeNode root = new TreeNode(4);
root.left = new TreeNode(9);
root.right = new TreeNode(0);
root.left.left = new TreeNode(5);
root.left.right = new TreeNode(1); // 测试用例,期望输出: 1026
System.out.println(sumNumbers(root));
}
}

【每日寄语】 人生就像一场赌局,不可能把把都赢,只要筹码在自己手上,就永远都会有希望。

LeetCode-129-求根节点到叶节点数字之和的更多相关文章

  1. Java实现 LeetCode 129 求根到叶子节点数字之和

    129. 求根到叶子节点数字之和 给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字. 例如,从根到叶子节点路径 1->2->3 代表数字 12 ...

  2. LeetCode 129. 求根到叶子节点数字之和(Sum Root to Leaf Numbers)

    题目描述 给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字. 例如,从根到叶子节点路径 1->2->3 代表数字 123. 计算从根到叶子节点 ...

  3. Leetcode之深度优先搜索(DFS)专题-129. 求根到叶子节点数字之和(Sum Root to Leaf Numbers)

    Leetcode之深度优先搜索(DFS)专题-129. 求根到叶子节点数字之和(Sum Root to Leaf Numbers) 深度优先搜索的解题详细介绍,点击 给定一个二叉树,它的每个结点都存放 ...

  4. Delphi 中的 XMLDocument 类详解(10) - 判断节点类型: 支节点、叶节点、文本节点、空节点

    unit Unit1; interface uses   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, For ...

  5. [LeetCode]129. Sum Root to Leaf Numbers路径数字求和

    DFS的标准形式 用一个String记录路径,最后判断到叶子时加到结果上. int res = 0; public int sumNumbers(TreeNode root) { if (root== ...

  6. [LeetCode] 129. Sum Root to Leaf Numbers 求根到叶节点数字之和

    Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a number ...

  7. [Leetcode] Sum root to leaf numbers求根到叶节点的数字之和

    Given a binary tree containing digits from0-9only, each root-to-leaf path could represent a number. ...

  8. C语言递归之求根到叶节点数字之和

    题目描述 给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字. 例如,从根到叶子节点路径 1->2->3 代表数字 123. 计算从根到叶子节点 ...

  9. 【二叉树-所有路经系列(根->叶子)】二叉树的所有路径、路径总和 II、路径总和、求根到叶子节点数字之和(DFS)

    总述 全部用DFS来做 重点一:参数的设置:为Root,路径字符串,路径List集合. 重点二:步骤: 1 节点为null 2 所有节点的操作 3 叶子结点的操作 4 非叶节点的操作 题目257. 二 ...

随机推荐

  1. 分页方法需要参数(当前页数,总数据量,拿到query的值)

    class Pagination: def __init__(self, page_num, all_count ,params=None,per_num=10,max_show=11): " ...

  2. POJ 1927 Area in Triangle 题解

    link Description 给出三角形三边长,给出绳长,问绳在三角形内能围成的最大面积.保证绳长 \(\le\) 三角形周长. Solution 首先我们得知道,三角形的内切圆半径就是三角形面积 ...

  3. 2020-9-29 T3

    题意:给定一颗大小为 \(n(n \le 5 \times 10 ^ 4)\) 的树,保证树的生成方式随机,你需要选定两个点 \(x, y\),最小化: \[\sum\limits_{i = 1} ^ ...

  4. spring学习四:Spring中的后置处理器BeanPostProcessor

    BeanPostProcessor接口作用: 如果我们想在Spring容器中完成bean实例化.配置以及其他初始化方法前后要添加一些自己逻辑处理.我们需要定义一个或多个BeanPostProcesso ...

  5. Windows 7 Ubuntu 修改系统启动加载项

    由于现在硬盘越来越大,越来越廉价.所以越来越多的很为了方便工作学习,在一台物理机上安装多个操作系统. 下面我们就来介绍安装多个操作系统后,每次开机后,到底默认引导哪个系统,由谁说的算? 由引导项说的算 ...

  6. JVM性能调优与实战基础理论篇-上

    Java虚拟机 概述 Java官方文档 https://docs.oracle.com/en/java/index.html JVM是一种规范,通过Oracle Java 官方文档找到JVM的规范查阅 ...

  7. (一)什么是Rabbitmq

    1.初识MQ 1.1.同步和异步通讯 微服务间通讯有同步和异步两种方式: 同步通讯:就像打电话,需要实时响应. 异步通讯:就像发邮件,不需要马上回复. 两种方式各有优劣,打电话可以立即得到响应,但是你 ...

  8. Solution -「51nod 1584」加权约数和

    \(\mathcal{Description}\)   Link.   令 \(\sigma(n)\) 为 \(n\) 的约数之和.求: \[\sum_{i=1}^n\sum_{j=1}^n\max\ ...

  9. LibOpenCM3(三) .ld文件(连接器脚本)和startup代码说明

    目录 LibOpenCM3(一) Linux下命令行开发环境配置 LibOpenCM3(二) 项目模板 Makefile分析 LibOpenCM3(三) .ld文件(连接器脚本)和startup代码说 ...

  10. MongoDB 带访问控制的副本集部署

    当你需要用到一个MongoDB 副本集集群,用于开发测试时, 可以通过下面的步骤简单完成. 版本及环境 MongoDB4.4  Centos6.5  一. 下载安装 MongoDB Server 及 ...