Monday, March 18, 2013
Sum Root to Leaf Numbers
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.
Solution:
Using recursive function, sum(node, val) is the sum of all node to leaf given that the each node to leaf value should be attached val in front.
return sum(root, 0)
public class Solution {
int ret ;
void sum(TreeNode root, int val){
if(root.left == null && root.right == null) {
ret += val* 10 + root.val;
return;
}
val = val * 10 + root.val;
if(root.left != null) sum(root.left,val);
if(root.right != null) sum(root.right,val);
}
public int sumNumbers(TreeNode root) {
// Start typing your Java solution below
// DO NOT write main() function
if(root == null) return 0;
ret = 0;
sum(root,0);
return ret;
}
}
Subscribe to:
Post Comments (Atom)
Manacher's Longest Palindromic Substring Algorithm
http://manacher-viz.s3-website-us-east-1.amazonaws.com/#/
-
Suppose a bus is running on a loop route. It takes 10 mins for the bus to finish the route. If a guy arrives at a bus stop at uniformly rand...
-
Question: You are playing a card game with me. Suppose I shuffle a deck of 52 cards, then I show you the card one by one to you from top t...
-
Move Objects There are N objects kept in a row. The ith object is at position x_i. You want to partition them into K groups. You want ...
No comments:
Post a Comment