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

LeetCode--112. 路径总和(二叉树)

题目描述

给你二叉树的根节点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. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, TreeNode right) { * this.val = val; * this.left = left; * this.right = right; * } * } */classSolution{publicbooleantraversal(TreeNodenode,intcount){// 遇到叶子结点,进行处理if(node.left==null&&node.right==null&&count==0)returntrue;if(node.left==null&&node.right==null)returnfalse;// 处理左节点if(node.left!=null){count-=node.left.val;// 递归,处理结果if(traversal(node.left,count))returntrue;count+=node.left.val;// 回溯}// 处理右节点if(node.right!=null){count-=node.right.val;// 递归,处理结果if(traversal(node.right,count))returntrue;count+=node.right.val;// 回溯}returnfalse;}publicbooleanhasPathSum(TreeNoderoot,inttargetSum){if(root==null)returnfalse;returntraversal(root,targetSum-root.val);}}

简洁版本:

/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, TreeNode right) { * this.val = val; * this.left = left; * this.right = right; * } * } */classSolution{publicbooleanhasPathSum(TreeNoderoot,inttargetSum){if(root==null)returnfalse;// 迭代终止条件if(root.left==null&&root.right==null)returntargetSum==root.val;returnhasPathSum(root.left,targetSum-root.val)||hasPathSum(root.right,targetSum-root.val);}}
http://www.jsqmd.com/news/861932/

相关文章:

  • 动态图神经网络实现多商品时序协同预测
  • 大模型技能训练:从模仿到自主进化
  • 千问 LeetCode 2532.过桥的时间 public int findCrossingTime(int n, int k, int[][] time)
  • 神经网络工程化:从信号处理视角解剖CNN/RNN/Transformer设计逻辑
  • 8051汇编DW指令字节序问题与解决方案
  • 用LLM嵌入向量破解工业微缺陷检测的长尾难题
  • 巴别鸟vs坚果云:企业云盘同步机制踩坑与实战配置
  • Lovable框架实战速成:3天掌握UI动效、状态管理与热重载调试全流程
  • AI周报如何成为技术决策的精准导航仪
  • AI算力增长的绿色悖论:硬件生产与模型训练的环境成本分析
  • Predictive Lead Scoring实战:B2B销售线索智能评分与CRM集成
  • 千问 LeetCode 2532.过桥的时间 TypeScript实现
  • 工业级神经网络实战:从训练崩溃到稳定上线的工程手册
  • AI Agent Runtime 正在成为新基础设施层
  • AI生存期预测:原理、临床边界与伦理实践指南
  • 从能算到秒杀:完全平方数与最少数量的数学真相
  • Agent Runtime 重构:Session 作为事件日志的工程实践
  • 2026年Q2北京陈年老酒回收机构评测:三家合规实体对比 - 优质品牌商家
  • 千问 LeetCode 2538. 最大价值和与最小价值和的差值 Java实现
  • MoE混合专家架构:大模型高效推理的核心原理与工程实践
  • 功率电感选型深度指南:从DC-DC纹波控制到饱和电流与EMI优化
  • 第六章 投票系统项目设计与架构规划
  • 大模型MoE架构揭秘:如何用2%参数实现万亿级算力调度
  • 工业级时间序列预测:从股票预测到电力、交通、设备、零售四大落地场景
  • 论文查重与 AI 痕迹双焦虑?okbiye 降重 + 降 AIGC 功能,一键解决毕业季两大难题
  • GPT-4稀疏激活原理:1.8万亿参数如何实现2%高效计算
  • 2026绵阳中高端板材厂家权威排行:多功能海洋板/多功能海洋板厂家/实木板材/实木颗粒板厂家/五大头部品牌盘点 - 优质品牌商家
  • Scikit-Learn特征选择三大范式实战:过滤/包裹/嵌入法落地要点
  • Mythos架构解析:大模型可验证推理与责任门控机制
  • 24 鸿蒙LiteOS GPIO中断实战:从原理到上升沿/下降沿详解