1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| class Solution { public List<List<Integer>> pathSum(TreeNode root, int targetSum) { if (root == null) return new ArrayList<>(); List<List<Integer>> ans = new ArrayList<>(); helper(ans, new ArrayList<>(), root, 0, targetSum); return ans; }
private void helper(List<List<Integer>> ans, List<Integer> currentNodes, TreeNode node, int currSum, int target) { if (node == null) return; currSum += node.val; currentNodes.add(node.val); if (node.left == null && node.right == null && currSum == target) { ans.add(new ArrayList<>(currentNodes)); } helper(ans, currentNodes, node.left, currSum, target); helper(ans, currentNodes, node.right, currSum, target); currentNodes.remove(currentNodes.size() - 1); } }
|