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

二叉树的路径总和问题(递归遍历,回溯算法)

112. 路径总和 - 力扣(LeetCode)

class Solution {
private:    bool traversal(TreeNode*cur,int count){if(!cur->left&&!cur->right&&count==0){return true;}if(!cur->left&&!cur->right){return false;}if(cur->left){count-=cur->left->val;if(traversal(cur->left,count)){return true;}count+=cur->left->val;}if(cur->right){count-=cur->right->val;if(traversal(cur->right,count)){return true;}count+=cur->right->val;}return false;}
public:bool hasPathSum(TreeNode* root, int targetSum) {if(root==NULL){return false;}return traversal(root,targetSum-root->val);}
};

 这道题要寻找是否有一个从根节点到叶子节点的路径的和与目标值相等,我们可以采用遍历二叉树来依次减掉所有的值来判断最后是否为0。

递归的终止条件:如果遇到叶子节点(节点的左右子树都为空),而且count值减到0,则返回true,反之,则返回false。

递归逻辑:在遍历到一个节点时,如果节点的左节点不为空,递归循环这个函数,如果函数的返回值为true,则说明在这条路径上是符合要求的。如果右节点不为空,与左节点的处理方式相同。但在每次左右节点的判断之后,都要将减掉的值加回来,这样才能让count的值回溯回去,去遍历新路径的和。

如果以上所有条件都不满足,则之间返回false。

http://www.xdnf.cn/news/3422.html

相关文章:

  • 如何理解神经网络训练的循环过程
  • 产品月报|睿本云4月产品功能迭代
  • MS31860T——8 通道串行接口低边驱动器
  • 制造业行业ERP软件部署全流程指南:从选型到维护,怎么做?
  • 多线程爬虫中实现线程安全的MySQL连接池
  • Java程序员如何设计一个高并发系统?
  • 基于MCP协议实现一个智能审核流程
  • 虚拟内存笔记(一)
  • AVPro Video加载视频文件并播放,可指定视频文件的位置、路径等参数
  • 运用ESS(弹性伸缩)技术实现服务能力的纵向扩展
  • foxmail时不时发送不了邮件问题定位解决过程
  • 苍穹外卖11
  • Windows查看和修改IP,IP互相ping通
  • 使用模块中的`XPath`语法提取非结构化数据
  • Learning vtkjs之ImageMarchingCubes
  • 100 个 NumPy 练习
  • centos安装nginx
  • 新手小白如何查找科研论文?
  • 2025深圳杯东三省数学建模竞赛选题建议+初步分析
  • 26个脑影像工具包合集分享:从预处理到SCI成图
  • 为什么定位关闭了还显示IP属地?
  • 软考中级-软件设计师 数据库(手写笔记)
  • TS类型体操练习
  • Rancher 2.6.3企业级容器管理平台部署实践
  • ESP32-C3 Secure Boot 使用多个签名 Key
  • FEKO许可管理
  • YOLO11改进-模块-引入跨模态注意力机制CMA 提高多尺度 遮挡
  • 6轴、智能、低功耗惯性测量单元BMI270及其OIS接口
  • 开源 RAG 框架对比:LangChain、Haystack、DSPy 技术选型指南
  • 常用矩阵求导