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.

 1 public class Solution {
 2     public int sumNumbers(TreeNode root) {
 3        int []sum = new int[1];
 4        get(root,0,sum);
 5        return sum[0];
 6     }
 7     public void get(TreeNode root,int path,int[] sum){
 8         if(root==null) return;
 9         path = 10*path+root.val;
10         if(root.left==null && root.right==null){
11             sum[0]+=path;
12             return;
13         }
14         get(root.left,path,sum);
15         get(root.right,path,sum);
16     }
17 }
View Code

 

posted @ 2014-02-06 15:02  krunning  阅读(75)  评论(0编辑  收藏  举报