Sum Root to Leaf Numbers
2014-11-02 00:34
260 查看
Given a binary tree containing digits from
each root-to-leaf path could represent a number.
An example is the root-to-leaf path
represents the number
Find the total sum of all root-to-leaf numbers.
For example,
The root-to-leaf path
The root-to-leaf path
Return the sum = 12 + 13 =
This is an easy problem: recursion without tracing back
/**
* Definition for binary tree
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
public class Solution {
public int sumNumbers(TreeNode root) {
if(root == null) return 0;
int[] ans = new int[1];
sumRec(root,0, ans);
return ans[0];
}
private void sumRec(TreeNode root, int prev, int[] ans){
if(root.left == null && root.right == null){
ans[0] += (prev*10 + root.val);
return;
}
if(root.left != null) sumRec(root.left, prev*10+root.val, ans);
if(root.right != null) sumRec(root.right, prev*10+root.val, ans);
}
}
Time complexity is O(n), where n is the number of the nodes, each visited exactly once.
Space Complexity is O(n), too
0-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.
This is an easy problem: recursion without tracing back
/**
* Definition for binary tree
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
public class Solution {
public int sumNumbers(TreeNode root) {
if(root == null) return 0;
int[] ans = new int[1];
sumRec(root,0, ans);
return ans[0];
}
private void sumRec(TreeNode root, int prev, int[] ans){
if(root.left == null && root.right == null){
ans[0] += (prev*10 + root.val);
return;
}
if(root.left != null) sumRec(root.left, prev*10+root.val, ans);
if(root.right != null) sumRec(root.right, prev*10+root.val, ans);
}
}
Time complexity is O(n), where n is the number of the nodes, each visited exactly once.
Space Complexity is O(n), too
相关文章推荐
- [Leetcode] Sum Root to Leaf Numbers
- leetcode Sum Root to Leaf Numbers
- 从根到叶子的和 sum root to leaf numbers
- Leetcode-Sum Root to Leaf Numbers
- Sum Root to Leaf Numbers
- Sum Root to Leaf Numbers
- 【leetcode】Sum Root to Leaf Numbers
- Leetcode Sum Root to Leaf Numbers
- *LeetCode- Sum Root to Leaf Numbers
- 从根到叶的每条路径构成一个数,求这些数的和(Sum Root to Leaf Numbers)
- [leetcode]Sum Root to Leaf Numbers
- [LeetCode]Sum Root to Leaf Numbers
- Sum Root to Leaf Numbers
- 129. Sum Root to Leaf Numbers
- Java for LeetCode 129 Sum Root to Leaf Numbers
- [LeetCode 129] Sum Root to Leaf Numbers
- LeetCode – Refresh – Sum Root to Leaf Numbers
- sum-root-to-leaf-numbers——dfs
- leetcode-sum root to leaf numbers
- FTPrep, 129 Sum Root to Leaf Numbers