当前位置: 首页 > article >正文

力扣112. 路径总和

给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则,返回 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->right == nullptr && root->left == nullptr && targetSum-root->val == 0) return true;
        
        return hasPathSum(root->right, targetSum-root->val) || hasPathSum(root->left, targetSum-root->val);
    }
};

解题思路:

(1)使用递归思想。

(2)若为空指针,则 false。

(3)若为叶子节点,则计算是否满足路径总和。

(4)最后,若左右子树有一条路径满足则 true。


http://www.kler.cn/a/419236.html

相关文章:

  • MacOS安装MySQL数据库和Java环境以及Navicat
  • digit_eye开发记录(3): C语言读取MNIST数据集
  • 【Android】EventBus的使用及源码分析
  • 【进阶篇-Day15:JAVA线程-Thread的介绍】
  • Mybatis Plus 增删改查方法(一、增)
  • 牛客-尼科彻斯定理、整型数组合并
  • 基于 SpringBoot 的致远汽车租赁系统
  • nuxt2 如何限制移动端手动缩放 safari meta失效解决方案
  • pytorch中的.clone() 和 .detach()
  • 解决docker 拉取镜像报错问题
  • Ubuntu20.04运行R-VIO2
  • ARIMA-神经网络混合模型在时间序列预测中的应用
  • (SAST检测规则-1)Android - 权限管理漏洞
  • 【MySQL — 数据库基础】MySQL的安装与配置 & 数据库简单介绍
  • IntelliJ+SpringBoot项目实战(十八)--在SpringBoot中整合SpringSecurity和JWT(下C)
  • ChatGPT/AI辅助网络安全运营之-数据解压缩
  • uniapp如何发起网络请求uni.request
  • 选择排序之大根堆
  • ubuntu20.04更换安装高版本CUDA以及多个CUDA版本管理
  • 【Java基础面试题003】Java的JIT | AOT是什么?
  • 【数据可视化入门】Python散点图全攻略:Matplotlib、Seaborn、Pyecharts实战代码大公开!
  • leetcode 3232. 判断是否可以赢得数字游戏 简单
  • 计算机网络安全 —— 非对称加密算法 RSA 和数字签名
  • springboot363高校竞赛管理系统(论文+源码)_kaic
  • 服务熔断-熔断器设计
  • 【JavaEE】JavaEE、web 开发、框架(Spring) 、Maven