1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
public class SumRootToLeafNumbers { public int sumNumbers(TreeNode root) { if (root == null) { return 0; } if (root.left == null && root.right == null) { return root.val; } List<Integer> result = new ArrayList<Integer>(); helper(0, result, root); int sum = 0; for (int i : result) { sum += i; } return sum; } private void helper(int crt, List<Integer> container, TreeNode root) { if (root == null) { return; } crt = crt * 10 + root.val; if (root.left == null && root.right == null) { container.add(crt); return; } if (root.left != null) { helper(crt, container, root.left); } if (root.right != null) { helper(crt, container, root.right); } } }
|