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

代码随想录算法训练营day15| 110.平衡二叉树 (优先掌握递归)、 257. 二叉树的所有路径 (优先掌握递归)、 404.左叶子之和 (优先掌握递归)、 222.完全二叉树的节点个数(优先掌握

一、110.平衡二叉树 (优先掌握递归)

题目链接/文章讲解/视频讲解:https://programmercarl.com/0110.%E5%B9%B3%E8%A1%A1%E4%BA%8C%E5%8F%89%E6%A0%91.html

初见思路:

学习代码随想录之后:平衡二叉树:左右子树的高度差相差小于1,

依旧是前序求深度,后序求高度

实现方面:给出的主函数是接收树节点,然后返回值是布尔类型,这个没法作为递归函数,所以需要再定义一个子函数作为递归函数,接收树节点,返回值是深度或者是高度(一般是利用后序遍历来求高度);在递归函数中,终止条件是如果传入节点为空,则返回0;然后是看两个子节点的变量值,如果是-1(已经非平衡),则返回-1;后序对中间节点进行处理,比较两个子节点的返回值,相差绝对值如果大于1,则返回-1,如果《=1,则返回较大的那个子节点深度+1;

第二遍可以自己完成实现。左右子树之差小于等于1,都为平衡树。

二、257. 二叉树的所有路径 (优先掌握递归)

初见思路:返回所有路径其实需要遍历所有节点,有选择的将路径添加进集合中

学习代码随想录之后:

收集路径:前序遍历,这道题涉及到了回溯

实现方面:可以理解思路,第一遍实现需要参照答案,第二遍基本可以自己完成

三、404.左叶子之和 (优先掌握递归)

初见思路:

学习代码随想录之后:通过父节点来判断子节点是否是左叶子节点(父节点的左子节点不为零,然后左子节点的左右子节点均为零,则该左子节点为左叶子节点)

实现方面:这个参数和返回值一样 就可以直接使用给定的函数了。后序遍历,终止条件为if(root ==null) return 0;单层递归逻辑:如果这个节点是左叶子节点的话,则把值记录,并且把目前的值和左子树上的左叶子节点的和,以及右子树上的左叶子节点的和做加和。则最终返回的int值就是所有左叶子节点的和了。

四、222.完全二叉树的节点个数(优先掌握递归)

学习代码随想录之后:其实就是要遍历整个二叉树,记录所有的节点,相加为sum;返回值为int值,传入参数为TreeNode

实现方面:递归代码实现起来还是挺简洁的,后序遍历进行一个加和。给定函数中再嵌套一个递归函数就可以。

http://www.jsqmd.com/news/496785/

相关文章:

  • 第4章,[标签 Win32] :加入滚动条的 SysMets
  • 2026年玻璃钢盐酸储罐厂家推荐:玻璃钢酸碱储罐/卧式玻璃钢储罐/FRP/PP储罐/现场缠绕玻璃钢储罐/大型玻璃钢储罐专业供应商精选 - 品牌推荐官
  • 2026年合肥寻猫服务费用构成与价值解析 - 2026年企业推荐榜
  • 一篇关于mysql迁移达梦后相关sql的优化记录
  • [工具] 影子去除工具,可以批量去除影子,自动裁切透明,自动更新偏移坐标
  • Vue2框架基础配置逻辑和表单双向绑定
  • 2026不锈钢组合水箱应用白皮书:不锈钢保温水箱/不锈钢冲压板/不锈钢拼装压模板/不锈钢方型水箱/不锈钢材料/选择指南 - 优质品牌商家
  • C 语言 I/O 缓冲区详解:彻底解决 printf 不输出、scanf 读错问题
  • c++一些刷题笔记,结构
  • Polkadot 验证人节点升级实战 | 备用节点切换、会话密钥交接零宕机完整教程
  • 小学子讲技术 - OpenClaw 沙箱集成详解
  • 操作系统红蓝对抗:从页表到调度器的血性博弈
  • 小学子讲技术 - OpenClaw 配置与安全详解
  • 2026年云南PC耐力板实力厂商盘点:技术、案例与选择指南 - 2026年企业推荐榜
  • 初识数据结构:排序算法
  • 网络安全学习4
  • 2026被动防护网选型指南:五大厂商技术路线与市场格局深度解析 - 2026年企业推荐榜
  • 文件系统红蓝对抗:从ext4到ZFS的数据持久性战争
  • VirtualLab:Ince高斯模式
  • JetBrains IDEs官宣 实验性 AI 功能:Recap 与 Insights 详解
  • 网络协议红蓝对抗:从TCP重传到QUIC的可靠性战争
  • springboot+vue社区疫情返乡管控系统--毕业论文
  • 宝塔面板下Laravel开发环境的高效配置与调试技巧
  • SpringBoot3接口优化:一行注解搞定字典与关联字段翻译,告别冗余循环
  • 【小程序】✈️一口气用AI肝了50+功能的小程序(已上线)
  • 一次线上事故,我学到了事件驱动架构的5个教训
  • TechWiz LCD 2D应用:单畴IPS仿真
  • leetcode 1409. 查询带键的排列
  • 43| 贴海报
  • 打不开游戏提示缺少D3DCompiler_47.dll文件 分享免费下载