力扣每日一题day37[113.路径总和ii]

给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。

叶子节点 是指没有子节点的节点。

示例 1:

输入:root = [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum = 22
输出:[[5,4,11,2],[5,8,4,5]]

示例 2:

输入:root = [1,2,3], targetSum = 5
输出:[]

示例 3:

输入:root = [1,2], targetSum = 0
输出:[]

要遍历整个树,找到所有路径,所以递归函数不要返回值!

class solution {
    public list<list<integer>> pathsum(treenode root, int targetsum) {
        list<list<integer>> res = new arraylist<>();
        if (root == null) return res; // 非空判断
        
        list<integer> path = new linkedlist<>();
        preorderdfs(root, targetsum, res, path);
        return res;
    }

    public void preorderdfs(treenode root, int targetsum, list<list<integer>> res, list<integer> path) {
        path.add(root.val);
        // 遇到了叶子节点
        if (root.left == null && root.right == null) {
            // 找到了和为 targetsum 的路径
            if (targetsum - root.val == 0) {
                res.add(new arraylist<>(path));
            }
            return; // 如果和不为 targetsum,返回
        }

        if (root.left != null) {
            preorderdfs(root.left, targetsum - root.val, res, path);
            path.remove(path.size() - 1); // 回溯
        }
        if (root.right != null) {
            preorderdfs(root.right, targetsum - root.val, res, path);
            path.remove(path.size() - 1); // 回溯
        }
    }
}

相关推荐

  1. 每日 --- 四数相加 II[][Go]

    2023-12-22 10:54:06       23 阅读
  2. 2024.4.21每日——组合总和 III

    2023-12-22 10:54:06       13 阅读
  3. 2024.4.20每日——组合总和

    2023-12-22 10:54:06       12 阅读
  4. 2024.4.22每日——组合总和

    2023-12-22 10:54:06       11 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-22 10:54:06       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-22 10:54:06       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-22 10:54:06       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-22 10:54:06       20 阅读

热门阅读

  1. 【力扣100】230.二叉搜索树中第k小的元素

    2023-12-22 10:54:06       49 阅读
  2. android 13.0 USB连接模式默认设为MTP

    2023-12-22 10:54:06       35 阅读
  3. 【ceph】pg down的处理流程

    2023-12-22 10:54:06       41 阅读
  4. Python基础if...else条件判断

    2023-12-22 10:54:06       41 阅读
  5. SQL---数据抽样

    2023-12-22 10:54:06       45 阅读
  6. Linux 脚本监控cpu输出到日志,每秒执行1次

    2023-12-22 10:54:06       39 阅读
  7. 2312llvm,05后端下

    2023-12-22 10:54:06       40 阅读
  8. IIC及OLED实验

    2023-12-22 10:54:06       32 阅读
  9. 通过 jekyll 构建 github pages 博客实战笔记

    2023-12-22 10:54:06       44 阅读
  10. MySQL数据库备份数据深入了解!

    2023-12-22 10:54:06       39 阅读
  11. form-data、x-www-form-urlencoded、raw 和 binary

    2023-12-22 10:54:06       25 阅读