给定一个只包含 0-9 数字的二叉树,每个根到叶的路径可以代表一个数字。

例如,从根到叶路径 1->2->3则代表数字 123。

查找所有根到叶数字的总和。

例如,

    1

   / \

  2   3

根到叶子路径 1->2 表示数字 12。

根到叶子路径 1->3 表示数字 13。

返回总和 = 12 + 13 = 25。

详见:https://leetcode.com/problems/sum-root-to-leaf-numbers/description/

Java实现:



/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public int sumNumbers(TreeNode root) {
if(root==null){
return 0;
}
return helper(root,0);
}
private int helper(TreeNode root,int sum){
if(root==null){
return 0;
}
if(root.left==null&&root.right==null){
return sum*10+root.val;
}
return helper(root.left,sum*10+root.val)+helper(root.right,sum*10+root.val);
}
}