Question
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.
Code
/**
* 递归求解
*
* @param node
* @param pre
* @return
*/
public int get(TreeNode node, int pre) {
if (node == null) {
return 0;
}
int left = 0;
int right = 0;
pre = pre * 10 + node.val;
if (node.left == null && node.right == null) {
return pre;
}
return get(node.left, pre) + get(node.right, pre);
}
public int sumNumbers(TreeNode node) {
return get(node, 0);
}