129. Sum Root to Leaf Numbers
Sum Root to Leaf Numbers
1Solution
/**
* Definition for a binary tree node.
* 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[] value = new int[1];
sumNumbers(root, value, new ArrayList<>());
return value[0];
}
public void sumNumbers(TreeNode root, int[] value, List<Integer> current) {
;
current.add(root.val);
if (root.left == null && root.right == null) {
value[0] += convert(current);
} else {
if (root.left != null) {
sumNumbers(root.left, value, current);
}
if (root.right != null) {
sumNumbers(root.right, value, current);
}
}
if (!current.isEmpty())
current.remove(current.size() - 1);
}
public int convert(List<Integer> list) {
int sum = 0;
int temp = 1;
for (int i = list.size() - 1; i >= 0; i--) {
sum += temp * list.get(i);
temp *= 10;
}
return sum;
}
}Last updated