【leetcode】113. 路径总和 II(path-sum-ii)(dfs)[中等]

2023-05-16

链接

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

耗时

解题:31 min
题解:10 min

题意

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

思路

每次 + 的总和 = sum,相当于每次 - 最后的剩余 rest = 0。
临界条件自然就是 叶节点,如果当前节点是叶节点,判断 rest - 当前节点值是否等于 0。如果等于 0 说明找到了,加入结果,不等于说明不行。
如果不是叶节点就 dfs 左右节点,剩余 rest 就减当前节点值。

时间复杂度: O ( n ) O(n) O(n)

AC代码

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
private:
    vector<vector<int>> ans;
    vector<int> path;
public:
    void dfs(TreeNode* root, int rest) {
        if(root == NULL) return ;
        
        path.push_back(root->val);
        
        if(root->left == NULL && root->right == NULL) {
            if(rest-(root->val) == 0) {
                ans.push_back(path);
            }
            path.pop_back();
            return ;            
        }
        
        dfs(root->left, rest-(root->val));
        dfs(root->right, rest-(root->val));
        
        path.pop_back();
    }
    
    vector<vector<int>> pathSum(TreeNode* root, int sum) {
        dfs(root, sum);    
        return ans;
    }
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【leetcode】113. 路径总和 II(path-sum-ii)(dfs)[中等] 的相关文章

  • 在 SVG 路径中对 SVG 进行动画处理

    我已经构建了一个路径动画 但 svg 中的锯片有问题 我想要为 Sawblade 制作动画 360 度旋转
  • 如何在Linux中使用相对路径打开文件?

    我有一个程序 它使用相对路径 例如 打开文件 现在的问题是 当我从另一个目录执行程序时 相对路径不是相对于程序而是相对于工作目录 因此 如果我使用 path to program myprog 启动程序 它将无法找到该文件 有没有办法独立于
  • 根据时间变量对两个表中的一对 COUNT 求和

    花了一个多小时的时间寻找这个问题的答案 但运气不佳 我有两个具有相同列名的区域表 我可以根据以下查询为任一表提供结果列表 将 Table2 替换为 Table1 SELECT Table1 YEAR FORMAT COUNT Table1
  • Oracle SQL 上的条件 SUM

    我通过以下方式获得数据 ITEM LOCATION UNIT RETAIL QUANTITY 100 KS 10 10 200 KS 20 30 我想要正数量的总和 数量 gt 0 和负数量的总和 数量 如何根据条件获得这些列的总和 您可以
  • 在 Node.js 中获取父目录名称

    我正在使用 Node js 并且我想获取某个目录的父目录名称 文件 我有文件 test1 folder1 FolderIWant test txt 我想要得到 FolderIWant 我努力了 var path require path v
  • JavaScript 文件中的代码如何获取文件的 URL?

    我需要将 CSS 样式表动态加载到位于不同的领域 如何获取 JS 文件的完整 URL 以在href样式表的属性 例如 结构如下 http bla com js script js http bla com css style css 我想将
  • 在 Rails 控制台中将大十进制转换为字符串

    我试图让我的控制台打印出我所有地点价目表定价的总和 我试图通过控制台完成此任务 但得到一个 BigDecimal 作为结果 纠结于如何将此结果转换为清晰的字符串或整数 Results Location pluck rate card sum
  • 正则表达式:验证没有查询参数的 URL 路径

    我不是正则表达式专家 我正在绞尽脑汁尝试做一个看起来非常简单并且在 python 2 7 中工作的事情 在没有查询字符串的情况下验证 URL 的路径 无主机名 换句话说 以 开头的字符串允许字母数字值 并且不允许任何其他特殊字符 除了这些
  • Python中基于行输入的条件求和

    我正在尝试用Python 做一个条件和积 简化的思路如下 A 1 1 2 3 3 3 B 0 50 0 25 0 99 0 80 0 70 0 20 我想要作为输出 Total1 0 50 1 0 25 1 Total2 0 99 2 To
  • Ruby 有 mkdir -p 吗? [复制]

    这个问题在这里已经有答案了 可能的重复 如何在 ruby 中递归创建目录 https stackoverflow com questions 3686032 how to create directories recursively in
  • 从 CLOB 内的 XML 到带有路径列表的 Oracle 表

    我使用的Oracle版本是 BANNER Oracle Database 10g Enterprise Edition Release 10 2 0 4 0 64bi PL SQL Release 10 2 0 4 0 Production
  • 从物理路径获取相对虚拟路径

    如何从asp net中的物理路径获取相对虚拟路径 相反的方法如下 Server MapPath Virtual Path Here 但是上面的方法的逆过程是什么呢 Maybe 这个问题 https stackoverflow com que
  • 如何获取R中的脚本路径? [复制]

    这个问题在这里已经有答案了 可能的重复 Rscript 确定执行脚本的路径 https stackoverflow com questions 1815606 rscript determine path of the executing
  • 如何从路径和文件名中删除非法字符?

    我需要一种强大且简单的方法来从简单字符串中删除非法路径和文件字符 我使用了下面的代码 但它似乎没有做任何事情 我错过了什么 using System using System IO namespace ConsoleApplication1
  • WPF 路径:如何在 XAML 中绘制它?

    我想创建一个带有非矩形标题的自定义 GroupBox 如下图所示 正如你所看到的 标题的内容必须是可参数化的 因此可以在xaml中输入图像 标题和背景 提前致谢 谢谢您的回答 实际上我想在自定义组框中使用这个设计 所以在你的答案中 如果我不
  • 如何设置Python的USER_SITE;我需要吗?

    我在 OS X 10 10 只需使用 pip 维护 上安装了 Python 我的站点包位于 Library Python 2 7 site packages 苹果的封装在 System Library Frameworks Python f
  • 如何在 Jenkins 声明式管道中设置 PATH

    在 Jenkins 脚本化管道中 您可以像这样设置 PATH 环境变量 node git url https github com jglick simple maven project with tests git withEnv PAT
  • 总和和不同不会改变结果?

    我是一个新手 试图在这里解决这个问题 到目前为止还没有运气 非常感谢任何帮助 Select Distinct AB agency no ab branch no AS AGENCY BRANCH count AB agency no ab
  • ruby rspec 不能与 simplecov 一起使用

    我安装了 simplecov gem 并添加了 require simplecov SimpleCov start 到spec helper rb文件 现在如果我在some file spec rb文件中包含spec helper rb并尝
  • 如何在 OS X 上查看 $PATH 变量的当前值?

    PATH returns bash usr local share npm bin Library Frameworks Python framework Versions 2 7 bin usr local bin usr local s

随机推荐