[leetCode刷題筆記]113. Path Sum II
阿新 • • 發佈:2019-02-06
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public List<List<Integer>> pathSum(TreeNode root, int sum) { List<List<Integer>> res = new ArrayList<List<Integer>>(); List<Integer> path = new ArrayList<Integer>(); helper(root, sum, path, res); return res; } private void helper (TreeNode root, int sum, List<Integer> path, List<List<Integer>> res) { if (root == null) { return; } path.add(root.val); if (root.left == null && root.right == null) { if (sum == root.val) { res.add(new ArrayList<Integer>(path)); } path.remove(path.size() - 1); return; } helper(root.left, sum - root.val, path, res); helper(root.right, sum - root.val, path, res); path.remove(path.size() - 1); return; } }