113. Path Sum II
1 class Solution { 2 List<List<Integer>> res = new ArrayList<>(); 3 public List<List<Integer>> pathSum(TreeNode root, int sum) { 4 if(root == null) return res; 5 backtrack(root, sum, new ArrayList<>()); 6 return res; 7 } 8 9 public void backtrack(TreeNode root, int remain, List<Integer> list) { 10 if(root == null) { 11 list.add(0); 12 return; 13 } 14 remain -= root.val; 15 list.add(root.val); 16 if(root.left == null && root.right == null && remain == 0) { 17 res.add(new ArrayList<>(list)); 18 return; 19 } 20 backtrack(root.left, remain, list); 21 list.remove(list.size() - 1); 22 backtrack(root.right, remain, list); 23 list.remove(list.size() - 1); 24 25 } 26 }