LeetCode -- Sum Root to Leaf Numbers
2015-11-17 11:32
337 查看
题目描述:
Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a number.
An example is the root-to-leaf path 1->2->3 which 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->2 represents the number 12.
The root-to-leaf path 1->3 represents the number 13.
Return the sum = 12 + 13 = 25.
思路:
DFS问题,即从根节点出发进入统计(存为string s),如果左节点不为空,进入左子树统计;如果右子树不为空进入右子树统计。如果是叶子节点,记录状态放入总结果(List<string> result)。
遍历完之后,再遍历一遍result转为整形累加计算结果即可。
实现代码:
Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a number.
An example is the root-to-leaf path 1->2->3 which 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->2 represents the number 12.
The root-to-leaf path 1->3 represents the number 13.
Return the sum = 12 + 13 = 25.
思路:
DFS问题,即从根节点出发进入统计(存为string s),如果左节点不为空,进入左子树统计;如果右子树不为空进入右子树统计。如果是叶子节点,记录状态放入总结果(List<string> result)。
遍历完之后,再遍历一遍result转为整形累加计算结果即可。
实现代码:
/** * Definition for a binary tree node. * public class TreeNode { * public int val; * public TreeNode left; * public TreeNode right; * public TreeNode(int x) { val = x; } * } */ public class Solution { public int SumNumbers(TreeNode root) { if(root == null){ return 0; } var ret = new List<string>(); Sum(root, "",ref ret); var s = 0; for(var i = 0;i < ret.Count; i++){ s += int.Parse(ret[i]); } return s; } private void Sum(TreeNode root, string s,ref List<string> result) { if(root.left == null && root.right == null){ result.Add(s + root.val); return; } if(root.left != null){ Sum(root.left, s + root.val, ref result); } if(root.right != null){ Sum(root.right, s + root.val, ref result); } } }
相关文章推荐
- 解决HorizontalScrollView与SeekBar滑动冲突的问题.
- Android ADB server didn't ACK * failed to start daemon * 简单有效的解决方案
- 有关animation抽屉动画示例
- python判断文件类型
- 程序员整理的各种不错的工具
- 利用OpenXml生成Word2007文档
- ActiveMQ 即时通讯服务 浅析
- SEO各名词基本概念
- 编译修改tomcat7源码,支持同时设置允许ip和域名
- 进程和线程的一些问题
- 高效求素数--筛法求素数
- Spring MVC配置response自动转json
- [mysql] delimiter的作用
- iOS-----简易地CocoaAsyncSocket使用
- 异步加载Listview The content of the adapter has changed but ListView did not receive a notification
- linux下vi的复制,黏贴,删除,撤销,跳转等命令 (转载)
- android工程混淆时要注意的
- favicon.ico
- iOS 9音频应用播放音频之第一个ios9音频实例2
- LeetCode -- Integer to English Words