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

LeetCode112 路径总和

  1. 题目
    给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。
    判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。
    如果存在,返回 true ;否则,返回 false 。
    叶子节点 是指没有子节点的节点。
  2. 示例
    示例 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
    解释:由于树是空的,所以不存在根节点到叶子节点的路径。
  3. 解题思路
    1. 判断是否存在路径和等于target,那么就需要判断除根节点外其左子树或右子树路径和是否和target-root.val,转换为递归方式。依次判断其左子树和右子树的路径和是否存在。
  4. 代码(Java)
    class Solution {public boolean hasPathSum(TreeNode root, int targetSum) {if (root == null) {return false;}if (root == null) {return false;}if (root.left == null && root.right == null) {return targetSum == root.val;}return hasPathSum(root.left, targetSum - root.val) || hasPathSum(root.right, targetSum - root.val);}public boolean hasPathSum(TreeNode root, int targetSum, int sum) {if (root.left == null && root.right == null) {return (sum + root.val) == targetSum;}boolean left = false;boolean right = false;if (root.left != null) {left = hasPathSum(root.left, targetSum, sum + root.val);}if (root.right != null) {right = hasPathSum(root.right, targetSum, sum + root.val);}return left || right;}
    }

相关文章:

  • 红帽认证可以直接考rhce嘛?红帽认证有效期多久?
  • Sora没体验资格?开源项目:Open-Sora,复现类Sora视频生成方案
  • Python库Gym:打开机器学习与强化学习的大门
  • JAVA八股day1
  • 学生时期学习资源同步-1 第一学期结业考试题8
  • 关于BFF
  • Echo框架:高性能的Golang Web框架
  • mysql笔记:19. 主从复制和主主复制
  • 由浅到深认识C语言(6):变量的存储类型
  • VS Code安装Live Server插件搭建web网页结合内网穿透实现公网访问
  • 快速高效地数据分析处理:QtiPlot for Mac中文直装版 兼容M
  • 海豚调度系列之:集群部署(Cluster)
  • c语言实现https客户端 源码+详细注释(OpenSSL下载,visual studio编译器环境配置)
  • 【办公类-22-15】周计划系列(5-6)“周计划-06 周计划打印pdf(docx删除内容转PDF)“ (2024年调整版本)
  • PHP修改默认上传文件缓存位置
  • [deviceone开发]-do_Webview的基本示例
  • CAP理论的例子讲解
  • echarts的各种常用效果展示
  • Go 语言编译器的 //go: 详解
  • Java编程基础24——递归练习
  • Linux gpio口使用方法
  • mysql外键的使用
  • REST架构的思考
  • Spark VS Hadoop:两大大数据分析系统深度解读
  • Vim 折腾记
  • Vue ES6 Jade Scss Webpack Gulp
  • windows下使用nginx调试简介
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 基于axios的vue插件,让http请求更简单
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • 微信公众号开发小记——5.python微信红包
  • 我感觉这是史上最牛的防sql注入方法类
  • UI设计初学者应该如何入门?
  • ​HTTP与HTTPS:网络通信的安全卫士
  • (¥1011)-(一千零一拾一元整)输出
  • (10)工业界推荐系统-小红书推荐场景及内部实践【排序模型的特征】
  • (9)STL算法之逆转旋转
  • (附源码)ssm户外用品商城 毕业设计 112346
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (黑马C++)L06 重载与继承
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (译) 函数式 JS #1:简介
  • (转)C语言家族扩展收藏 (转)C语言家族扩展
  • (转载)利用webkit抓取动态网页和链接
  • .Net Core缓存组件(MemoryCache)源码解析
  • .NET Reactor简单使用教程
  • .NET 中使用 Mutex 进行跨越进程边界的同步
  • .NET的微型Web框架 Nancy
  • .NET高级面试指南专题十一【 设计模式介绍,为什么要用设计模式】
  • .net中的Queue和Stack
  • /etc/fstab 只读无法修改的解决办法
  • /etc/motd and /etc/issue