题目

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

说明: 叶子节点是指没有子节点的节点。

示例:

给定如下二叉树,以及目标和 sum = 22,

              5
/ \
4 8
/ / \
11 13 4
/ \ / \
7 2 5 1

返回:

[
[5,4,11,2],
[5,8,4,5]
]

本题同【剑指Offer】面试题34. 二叉树中和为某一值的路径

思路一:回溯

代码

class Solution {
public:
vector<vector<int>> pathSum(TreeNode* root, int sum) {
vector<vector<int>> res;
if (root) {
vector<int> path;
find(root, sum, res, path);
}
return res;
} void find(TreeNode *root, int sum, vector<vector<int>> &res, vector<int> &path) {
sum -= root->val;
path.push_back(root->val);
if (sum == 0 && !root->left && !root->right) {
res.push_back(path);
return;
}
if (root->left) {
find(root->left, sum, res, path);
path.pop_back(); //回溯
}
if (root->right) {
find(root->right, sum, res, path);
path.pop_back(); //回溯
}
}
};

另一种写法

class Solution {
public:
vector<vector<int>> pathSum(TreeNode* root, int sum) {
vector<vector<int>> res;
vector<int> path;
if (!root) {
return res;
}
find(root, sum, res, path);
return res;
}
void find(TreeNode *root, int sum, vector<vector<int>> &res, vector<int> &path) {
if (!root) {
return;
}
path.push_back(root->val);
if (!root->left && !root->right && sum == root->val) {
res.push_back(path);
}
find(root->left, sum-root->val, res, path);
find(root->right, sum-root->val, res, path);
path.pop_back();
}
};

【LeetCode】113. 路径总和 II的更多相关文章

  1. Java实现 LeetCode 113 路径总和 II

    113. 路径总和 II 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径. 说明: 叶子节点是指没有子节点的节点. 示例: 给定如下二叉树,以及目标和 sum = ...

  2. LeetCode 113. 路径总和 II(Path Sum II)

    题目描述 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径. 说明: 叶子节点是指没有子节点的节点. 示例: 给定如下二叉树,以及目标和 sum = 22, 5 / ...

  3. [LeetCode] 113. 路径总和 II

    题目链接 : https://leetcode-cn.com/problems/path-sum-ii/ 题目描述: 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径 ...

  4. LeetCode 113. 路径总和 II C++

    提交结果:内存超100%,用时超69% /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNo ...

  5. LeetCode:路径总和II【113】

    LeetCode:路径总和II[113] 题目描述 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径. 说明: 叶子节点是指没有子节点的节点. 示例:给定如下二叉树, ...

  6. 刷题-力扣-113. 路径总和 II

    113. 路径总和 II 题目链接 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/path-sum-ii 著作权归领扣网络所有.商业转载请联系 ...

  7. 113. 路径总和 II

    给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径. 说明: 叶子节点是指没有子节点的节点. 示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 ...

  8. 113路径总和II

    题目: 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径. 来源: https://leetcode-cn.com/problems/path-sum-ii/ 法一: ...

  9. LeetCode 112. 路径总和(Path Sum) 10

    112. 路径总和 112. Path Sum 题目描述 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和. 说明: 叶子节点是指没有子节点的节 ...

随机推荐

  1. 的aspnet_client文件夹

    在早期,有一些asp.net组件是默认要调用(从客户端调用)服务器根(域名)下这个子目录里边的文件的. 不过如果你使用高版本的asp.net,那么全都从你的网站里调用了,因为asp.net有了更好地直 ...

  2. Hive的安装与基础指令

    一.Hive安装 Hive的安装相对比较简单,Hive是基于Hadoop来使用的,所以搭建Hadoop伪分布式或完全分布式即可,Hive安装过程如下: ①安装并启动Hadoop 在博主的其他博客中有安 ...

  3. letter-spacing 与 word-spacing 结合使用,造成文字反转

    文字未反转时,如图: 文字反转时,如图: 以上效果只是因为发现记录下来,目前并无实用,也许未来用得着它.

  4. 详解python的数字类型变量与其方法

    以下内容引自:https://www.jb51.net/article/97752.htm python数据类型是不允许改变的,这就意味着如果改变 Number 数据类型的值,将重新分配内存空间.下面 ...

  5. MVC 拦截器

    https://www.cnblogs.com/blosaa/archive/2011/06/02/2067632.html

  6. cubic-bezier 个人学习理解

    cubic-bezier 三次贝塞尔曲线函数,是一种动画的速度曲线.根据动画设置的时间,速度相应变化 四个点 P0,P1,P2,P3,其中P0是起点,坐标(0,0),P3是终点,坐标(1,1) PI和 ...

  7. hbase单机版安装

    hbase单机版安装 1.      hbase单机版安装 HBase的安装也有三种模式:单机模式.伪分布模式和完全分布式模式. hbase依赖于Hadoop和Zookeeper. 这里安装的是单机版 ...

  8. centos将uwsgi添加为系统服务

    如果退出ssh 链接, 都会导致uwsgi进程关闭 这时, 我们需要进行管理软件管理uwsgi进行的运行, centos系统中我们采用 systemd, 让我们的项目变为系统服务 第一步: 首先 vi ...

  9. 四、linux基础-系统目录_安装_相关命令_调度

    4 系统目录-安装-版本4.1系统目录Linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此目录下再创建其他的目录. 在装完Linux系统以后会自动生成一下等目录, ...

  10. jquery 单选框 radio是否选择问题

    业务需求是当用户勾选中的时候删除数据,取消勾选的时候数据取消 //单选事件,获取到每行数据ID $('.checkItem').change(function(){ // checkItem是给rad ...