美文网首页
113. Path Sum II

113. Path Sum II

作者: 7ccc099f4608 | 来源:发表于2020-03-16 13:50 被阅读0次

    https://leetcode-cn.com/problems/path-sum-ii/

    image.png

    (图片来源https://leetcode-cn.com/problems/path-sum-ii/

    日期 是否一次通过 comment
    2020-03-15 0

    递归

    // 回溯
    public class a_PathSum_2_113 {
    
        public List<List<Integer>> pathSum(TreeNode root, int sum) {
            List<List<Integer>> res = new ArrayList<>();
            List<Integer> solution = new ArrayList<>();
    
            findSum(res, solution, root, sum);
    
            return res;
        }
    
        private void findSum(List<List<Integer>> result, List<Integer> solution, TreeNode root, int residual){
            if (root == null) {
                return;
            }
    
            residual -= root.val;
            solution.add(root.val);
            if (root.left == null && root.right == null && residual == 0) {
    
                result.add(new ArrayList<>(solution));
                solution.remove(solution.size()-1);  // 返回上一层,均要remove
    
                return;
            }
    
            findSum(result, solution, root.left, residual);
            findSum(result, solution, root.right, residual);
            solution.remove(solution.size()-1);
        }
    
    }

    相关文章

      网友评论

          本文标题:113. Path Sum II

          本文链接:https://www.haomeiwen.com/subject/xwjgehtx.html