剑指 Offer 34. 二叉树中和为某一值的路径
  1BnnW8rtw7M9 2023年11月02日 25 0


剑指 Offer 34. 二叉树中和为某一值的路径

回溯

这里有个注意事项,pathList 类型,需要显示回溯,如 path.remove(path.size() - 1);。而 target 作为 int 类型不需要显示回溯,因为是不可变类型,类似的还有 String

这里不可变类型指的是:当变量作为形参传递给一个函数,在该函数内部修改了这个变量,回到主函数,如果该变量的值没有发生改变,则认为是不可变类型

class Solution {
    List<List<Integer>> res = new ArrayList<>();
    List<Integer> path = new ArrayList<>();

    public List<List<Integer>> pathSum(TreeNode root, int target) {
        backtrack(root, target);
        return res;
    }

    void backtrack(TreeNode root, int target){
        if(root == null) return;

        path.add(root.val);
        target -= root.val;
        if(root.left == null && root.right == null && target == 0){
            res.add(new ArrayList<>(path));
        }
        
        backtrack(root.left, target);
        backtrack(root.right, target);
        path.remove(path.size() - 1);
    }
}


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
1BnnW8rtw7M9
作者其他文章 更多