题目

给你一个二叉树的根节点 root ,树中每个节点都存放有一个 0 到 9 之间的数字。 每条从根节点到叶节点的路径都代表一个数字:

例如,从根节点到叶节点的路径 1 -> 2 -> 3 表示数字 123 。 计算从根节点到叶节点生成的 所有数字之和 。

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

输入:root = [1,2,3]
输出:25
解释:
从根到叶子节点路径 1->2 代表数字 12
从根到叶子节点路径 1->3 代表数字 13
因此,数字总和 = 12 + 13 = 25

输入:root = [4,9,0,5,1]
输出:1026
解释:
从根到叶子节点路径 4->9->5 代表数字 495
从根到叶子节点路径 4->9->1 代表数字 491
从根到叶子节点路径 4->0 代表数字 40
因此,数字总和 = 495 + 491 + 40 = 1026

思路

本题中,每个节点都对应一个数字,等于其父节点对应的数字乘以10再加上该节点的值,只要计算出每个叶子结点对应的数字,然后计算所有叶子节点对应的数字之和,即可得到结果。

深度优先搜索(DFS)

从根节点开始,遍历每个节点,如果遇到叶子节点,则将叶子节点对应的数字加到数字之和。如果当前节点不是叶子节点,则计算其子节点对应的数字,然后对子节点递归遍历


Java代码如下:

//深搜其实类似于回溯法
class Solution {int sum = 0;//记录所有叶子结点的数字之和public int sumNumbers(TreeNode root){dfs(root,0);return sum;}public void dfs(TreeNode root, int prevSum){if(root == null){return;}int curSum = prevSum * 10 + root.val;//记录每个叶子节点最终代表的数字if(root.left == null && root.right == null){//如果遇到了叶子结点,则返回当前对应的数字,并累加到sum中sum += curSum;return;}//递归处理左右节点,并累加所有叶子结点的数字if(root.left != null) dfs(root.left,curSum);if(root.right != null) dfs(root.right,curSum);}
}

代码随想录——求根节点到叶节点数字之和相关推荐

  1. 129. 求根节点到叶节点数字之和

    129. 求根节点到叶节点数字之和: 题目链接 :129. 求根节点到叶节点数字之和 题目: 给定一个二叉树的根节点 root ,树中每个节点都存放有一个 0 到 9 之间的数字. 每条从根节点到叶节 ...

  2. Leetcode 129求根节点到叶节点数字之和、104二叉树的最大深度、8字符串转换整数(atoi)、82删除排序链表中的重复元素II、204二分查找、94二叉树的中序遍历、144二叉树的前序遍历

    Top1:Leetcode 129求根节点到叶节点数字之和 官方题解:https://leetcode.cn/problems/sum-root-to-leaf-numbers/solution/qi ...

  3. LeetCode Algorithm 129. 求根节点到叶节点数字之和

    129. 求根节点到叶节点数字之和 Ideas 从根节点到叶节点的路径可以通过递归得到,所以我们从根节点开始递归,每次递归的时候还带着一个参数表示从根节点到当前节点所组成的数字对应的字符串,最后如果到 ...

  4. 【leetcode-DFS】求根节点到叶节点数字之和/二叉树的最大路径和/路径总和/左叶子之和/树的直径

    文章目录 求根节点到叶节点数字之和 深度优先搜索 广度优先搜索 二叉树的最大路径和 DFS 路径总和1 深度优先搜索 广度优先搜索 路径总和2 回溯法 广度优先搜索 左叶子之和 递归 DFS 树的直径 ...

  5. 求根节点到叶节点数字之和(C语言)

    一个二叉树的根节点 root ,树中每个节点都存放有一个 0 到 9 之间的数字. 每条从根节点到叶节点的路径都代表一个数字: 例如,从根节点到叶节点的路径 1 -> 2 -> 3 表示数 ...

  6. 【数据结构与算法】之深入解析“求根节点到叶节点数字之和”的求解思路与算法示例

    一.题目要求 给你一个二叉树的根节点 root ,树中每个节点都存放有一个 0 到 9 之间的数字. 每条从根节点到叶节点的路径都代表一个数字:例如,从根节点到叶节点的路径 1 -> 2 -&g ...

  7. 求根节点到叶节点数字之和Python解法

    给你一个二叉树的根节点 root ,树中每个节点都存放有一个 0 到 9 之间的数字. 每条从根节点到叶节点的路径都代表一个数字: 例如,从根节点到叶节点的路径 1 -> 2 -> 3 表 ...

  8. 【二叉树】求根节点到叶节点数字之和

    0x00 题目 给你一个二叉树的根节点 root 树中每个节点都存放有一个 0 到 9 之间的数字 每条从 根 节点到 叶 节点的路径都代表一个 数字 例如,从 根 节点到 叶 节点的路径 1 -&g ...

  9. 剑指 Offer II 049. 从根节点到叶节点的路径数字之和

    剑指 Offer II 049. 从根节点到叶节点的路径数字之和: 题目链接 :剑指 Offer II 049. 从根节点到叶节点的路径数字之和 题目: 给定一个二叉树的根节点 root ,树中每个节 ...

最新文章

  1. Jupyter Notebook 快捷键(基本)
  2. Android AudioPolicyService和AudioPolicyManager
  3. Quarkus on OpenJ9 JVM和资源消耗
  4. MFC对话框动态刷新图片(仿照全屏屏保)
  5. 漫步数理统计四——概率集合函数(下)
  6. Wildcard Matching
  7. 数据仓库模型与缓慢变化维度技术深度剖析-DW商业环境实战
  8. 强烈推荐一个在线caffe网络可视化工具!!
  9. js上传文件到OSS
  10. 天勤数据结构代码——双链表
  11. python系列3—顺序结构和分支结构
  12. JS学习之路系列总结四象阵(此文犹如武林之中的易筋经,是你驰骋IT界的武功心法,学会JS五大阵法就学会了JS,博主建议先学三才阵)
  13. 27_ArrayList类
  14. AMD显卡无法安装驱动
  15. 【PyTorch】Optim 优化器
  16. FCM聚类与K-means聚类的分析比较
  17. 解决麒麟系统arm环境无法安装pyinstaller的错误:Checking for library z : not found
  18. 使用微信推送报警消息及api
  19. netbean+glassfish创建web项目的目录结构
  20. quick bms的使用

热门文章

  1. python k折交叉验证,python中sklearnk折交叉验证
  2. Linux开放8080端口,防火墙开启/关闭/重启
  3. Cursor的使用和下载
  4. ng-model、ng-bind、ng-value使用区别
  5. 中国AI觉醒 阿里王坚:云智能将成为大趋势
  6. 数学漫游 - 向量投影和最小二乘法
  7. STM32之时钟输出功能
  8. 打造国内专业企业研发管理解决方案,ONES完成华创资本领投A+轮600万美元融资
  9. 玩转SQL语句之group by 多字段分组查询与having子句,一篇解决你的疑惑!
  10. 阿里云大规模即时云渲染支撑天猫双11“直播未来城”