public List<List<Integer>> pathSum(TreeNode root, int sum) {
        List<List<Integer>> res = new ArrayList<List<Integer>>();
        dfs(res, new ArrayList<Integer>(), sum, 0, root);
        return res;
    }
    public void dfs(List<List<Integer>> res, List<Integer> temp, int target, int count, TreeNode node){
        if (node == null)
        return;
        temp.add(node.val);
        if (node.left == null && node.right == null && count + node.val == target) {
            res.add(new ArrayList<Integer>(temp));
        }
        dfs(res, temp, target, count + node.val, node.left);
        dfs(res, temp, target, count + node.val, node.right);
        temp.remove(temp.size()-1);
    }

results matching ""

    No results matching ""