美文网首页
LeetCode 第112题:路径总和II

LeetCode 第112题:路径总和II

作者: 放开那个BUG | 来源:发表于2020-08-11 00:13 被阅读0次

1、前言

题目描述

2、思路

使用回溯的方式来做,回溯是一种思想,不能说是一种套路。就是开始你一直放,但是到了最后就要开始吐出来。

3、代码

class Solution {

    private List<List<Integer>> res = new ArrayList<>();
    public List<List<Integer>> pathSum(TreeNode root, int targetSum) {
        if(root == null){
            return new ArrayList<>();
        }
        dfs(root, targetSum, new ArrayList<>());
        return res;
    }

    private void dfs(TreeNode root, int targetSum, List<Integer> list){
        if(root == null){
            return;
        }
        if(root.left == null && root.right == null && targetSum - root.val == 0){
            list.add(root.val);
            res.add(new ArrayList<>(list));
            list.remove(list.size() - 1);
            return;
        }
        list.add(root.val);
        dfs(root.left, targetSum - root.val, list);
        dfs(root.right, targetSum - root.val, list);
        list.remove(list.size() - 1);
    }
}

相关文章

网友评论

      本文标题:LeetCode 第112题:路径总和II

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