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

专题二:二叉树的深度搜索(求根节点到叶节点数字之和)

以leetcode129题为例

题目分析: 

从根到叶子结点的一条路径组成的数字,所有数字加在一起返回

算法原理分析:

总问题:给一个结点就返回所有到叶子结点的所有数字之和

在看子问题是不是也这样

我们要分析子问题是不是也一样,要注意分析1,和分析2,和分析4/5/6/等等结点都是一样吗

我们可以抓住其中一个结点分析

以5这个结点分析,如何计算,是不是上层传12,结合这个结点5,

然后去结合左结点8 ,形成1258

结合右结点9,形成1259

因为左结点8已经是叶子结点了就可以当作返回值返回给上一层

然后右节点9接着按照这个方法递归下去,拿到12594+125931的值然后返给结点9

结点8和结点9在相加返回给5

我们在处理每一个问题都是这样

第一步,通过上层传下来的结合本结点形成一个新的数字

第二步:传给左结点

第三步:传给右结点

第四步:把左结点和右节点的返回值相加

注意出口在第二层:因为你是要结合上一层的才返回出去

代码编写:

http://www.dtcms.com/a/185322.html

相关文章:

  • 第三方软件测评中心分享:软件功能测试类型和测试工具
  • 极狐GitLab 通用软件包存储库功能介绍
  • 点下4个Winform UI开源控件库
  • 养生:拥抱健康生活的全方位指南
  • c语言第一个小游戏:贪吃蛇小游戏03
  • 开源链动2+1模式AI智能名片S2B2C商城小程序赋能新微商服务能力升级研究
  • 《Python星球日记》 第66天:序列建模与语言模型
  • Python的安装使用
  • 医学影像处理与可视化:从预处理到 3D 重建的技术实践
  • python3数据类型
  • 大语言模型强化学习双强:OpenRLHF与verl技术解析
  • 精益数据分析(56/126):创业阶段的划分与精益数据分析实践
  • C++ string比较、string随机访问、string字符插入、string数据删除
  • ARM Cortex-M3内核详解
  • MFCC特征提取及Griffin-Lim算法(librosa实现)
  • C++初阶-string类的模拟实现与改进
  • ORB特征点检测算法
  • Java SpringMVC 异常处理:保障应用健壮性的关键策略
  • uni-app微信小程序登录流程详解
  • 【SSM-SpringMVC(三)】Spring接入Web环境!介绍SpringMVC的拦截器和异常处理机制
  • 《Asp.net Mvc 网站开发》复习试题
  • 典籍知识问答重新生成和消息修改Bug修改
  • Linux `man` 指令终极指南
  • 【Python】UV:单脚本依赖管理
  • GitDiagram - GitHub 仓库可视化工具
  • WordPress 网站上的 jpg、png 和 WebP 图片插件
  • C++23 中的 views::stride:让范围操作更灵活
  • 5.5.1 WPF中的动画2-基于路径的动画
  • 用python清除PDF文件中的水印(Adobe Acrobat 无法删除)
  • python可视化:2025Q1北方游客量与客运流动分析3