[LeetCode][Java] Sum Root to Leaf Numbers
2015-07-29 17:51
549 查看
题目:
Given a binary tree containing digits from0-9only, each root-to-leaf path could represent a number.
An example is the root-to-leaf path
1->2->3which represents the number
123.
Find the total sum of all root-to-leaf numbers.
For example,
1 / \ 2 3
The root-to-leaf path
1->2represents the number
12.
The root-to-leaf path
1->3represents the number
13.
Return the sum = 12 + 13 =
25.
题意:
给定一棵二叉树,仅仅包含0-9的数字元素,每一条从根节点到叶子节点的路径都可以代表一个数.举个例子一条从根节点到叶子节点的路径为1->2->3
代表数为
123.
找出所有的从根到叶子节点路径中所表示的数的和。
比如给定:
1 / \ 2 3
The root-to-leaf path
1->2represents the number
12.
The root-to-leaf path
1->3represents the number
13.
Return the sum = 12 + 13 =
25.
算法分析:
通过递归,思路比较清晰,主要就是考虑递归条件和结束条件。直接看代码,比较好理解。AC代码:
<span style="font-family:Microsoft YaHei;font-size:12px;">/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ //又是递归 public class Solution { int sum = 0; public int sumNumbers(TreeNode root) { if (root == null) return 0; run(root, 0); return sum; } public void run(TreeNode root, int num) { num = 10 * num + root.val; if (root.left == null && root.right == null) sum += num; if (root.left != null) run(root.left, num); if (root.right != null) run(root.right, num); } }</span>
相关文章推荐
- Java实现二分查找算法实例分析
- 应一个好友要求写一个SpringJDBC 的文章 , 介绍返回操作数据库最新id写法
- Java 通过反射调用方法
- mac android eclipse 配置问题
- Java基础学习总结(41)——JPA常用注解
- Java基础学习总结(41)——JPA常用注解
- Java基础学习总结(41)——JPA常用注解
- Java类加载器
- java使用ArrayList遍历及效率比较实例分析
- java字符编码转换研究
- JAVA自学路线图
- Java 划分排序
- spring+springmvc+hibernate完整示例
- Java Timer 定时器的使用
- Java自学之路
- eclipse快捷键
- Java中常用的数据库驱动程序名和数据库连接地址
- 在Eclipse的DDMS中查找genymotion模拟器的sdcard中的文件---开发中遇到的问题(一)...
- 在Eclipse的DDMS中查找genymotion模拟器的sdcard中的文件---开发中遇到的问题(一)
- JAVA注解 实现一个简单的sql语句生成器