当前位置:网站首页>【LeetCode】112.路径总和
【LeetCode】112.路径总和
2022-08-03 08:30:00 【酥酥~】
题目
给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则,返回 false 。
叶子节点 是指没有子节点的节点。
示例 1:

输入:root = [5,4,8,11,null,13,4,7,2,null,null,null,1], targetSum = 22
输出:true
解释:等于目标和的根节点到叶节点路径如上图所示。
示例 2:

输入:root = [1,2,3], targetSum = 5
输出:false
解释:树中存在两条根节点到叶子节点的路径:
(1 --> 2): 和为 3
(1 --> 3): 和为 4
不存在 sum = 5 的根节点到叶子节点的路径。
示例 3:
输入:root = [], targetSum = 0
输出:false
解释:由于树是空的,所以不存在根节点到叶子节点的路径。
提示:
树中节点的数目在范围 [0, 5000] 内
-1000 <= Node.val <= 1000
-1000 <= targetSum <= 1000
题解
使用递归
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} * }; */
class Solution {
public:
bool hasPathSum(TreeNode* root, int targetSum) {
if(root==nullptr)
return false;
if(!root->left && !root->right)
return targetSum == root->val;
return hasPathSum(root->left,targetSum - root->val) ||
hasPathSum(root->right,targetSum - root->val);
}
};
迭代,广度优先遍历
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} * }; */
class Solution {
public:
bool hasPathSum(TreeNode* root, int targetSum) {
if(root==nullptr)
return false;
queue<TreeNode*> myqueue;
myqueue.emplace(root);
while(!myqueue.empty())
{
TreeNode* node = myqueue.front();
myqueue.pop();
if(!node->left && !node->right && targetSum==node->val)
return true;
if(node->left)
{
node->left->val += node->val;
myqueue.emplace(node->left);
}
if(node->right)
{
node->right->val += node->val;
myqueue.emplace(node->right);
}
}
return false;
}
};
边栏推荐
- 数仓4.0(二)------ 业务数据采集平台
- AI中台序列标注任务:三个数据集构造过程记录
- ArcEngine (3) zoom in and zoom out through the MapControl control to achieve full-image roaming
- 线性表
- 二进制日志过期时间设置expire_logs_days
- ArcEngine(八)用IWorkspaceFactory加载矢量数据
- flutter 应用 抓包
- window的供选数据流
- ArcEngine (5) use the ICommand interface to achieve zoom in and zoom out
- 审批流设计
猜你喜欢

HCIP练习(OSPF)

IDEA2021.2安装与配置(持续更新)

MySQL数据库————数据库与vs的连接

The use of the database table structure document generation tool screw

品牌方发行NFT时,应如何考量实用性?

sqlserver2019安装失败

线性表

redis键值出现 xacxedx00x05tx00&的解决方法

dflow入门3——dpdispatcher插件
![[Kaggle combat] Prediction of the number of survivors of the Titanic (from zero to submission to Kaggle to model saving and restoration)](/img/2b/d2f565d9221da094a9ccc30f506dc8.png)
[Kaggle combat] Prediction of the number of survivors of the Titanic (from zero to submission to Kaggle to model saving and restoration)
随机推荐
redis键值出现 xacxedx00x05tx00&的解决方法
Dapr 与 NestJs ,实战编写一个 Pub & Sub 装饰器
熊市中预言机,牛市中的战斗机,藏宝计划起飞,坐稳扶好!
36氪详情页AES
vs 2022无法安装 vc_runtimeMinmum_x86错误
热部署系统实现
基于SSM开发的的小区物业管理系统小程序源码
WordPress主题-B2美化通用子主题商业运营版
mysql5.7服务器The innodb_system data file 'ibdata1' must be writable导致无法启动服务器
ArcEngine(四)MapControl_OnMouseDown的使用
第十二天&接口和协议
Unity编辑器扩展批量修改图片名称
thop 使用心得
Charles packet capture tool learning record
数仓4.0(二)------ 业务数据采集平台
关于Unity,Laya学习,第一步加载Unity加载场景
Evaluate: A detailed introduction to the introduction of huggingface evaluation indicator module
Charles抓包工具学习记录
HCIP练习03(重发布)
How does Mysql query two data tables for the same fields in two tables at the same time