代码随想录训练营第15天

news2024/11/18 13:35:37

题目:二叉树的最大深度

递归法:后序遍历。具体思想, 终止条件是如果指针指向了空(也就是此时是叶子结点),那么返回0。然后根据左右中的递归顺序去调用函数(并且保存这次的左右子树的深度),中的操作是,计算当前节点的左子树 和 右子树的最大高度 并且+1,返回倒上一个递归函数。

其实前序遍历算的才是深度,后续遍历算的是高度,但是这里为啥选择后续,因为高度和深度的数值一样,而且后续算高度的代码比较容易实现。

 迭代法:就是简单的层序遍历,只不过里面加上了统计函数的操作。

 题目:二叉树的最小深度

递归法:这个题目和前面那个题目的不同在于,如果当前节点的左孩子为空 右孩子不为空,那么最小深度是 右孩子的深度 + 1,而不是空的左孩子(题目里面说最小深度是,叶子节点到根节点的距离)

迭代法:

 题目:完全二叉树结点个数

一般二叉树结点的个数计算:

递归法(后序):

迭代法:

 完全二叉树结点个数计算:

递归法:(后序)

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/111218.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

矽昌--Wireless配置简述

Wireless配置简述 1 编译 1.1 首次编译 ​ 如果是第一次编译时就需要添加wifi模块,请检查所需编译版型的配置,配置位于openwrt-18.06/target/linux/siflower/ 文件夹下,例如sf19a28_ac28_fullmask_def.config为ac28版型的配置。 查看配置并…

截至2022年12月共计451个信息安全国家标准汇总

写在前面 早年刚参加信息安全工作更多的学点皮毛技术,到处找安全工具,跟踪poc,拿到一个就全网扫一遍,从来没有想过,系统化的安全工作应该怎样搞?我做的工作在安全体系中处于哪个阶段? 后来有机会做企业安全建设&…

计网第二章.物理层

以下是湖科大计算机网络公开课的笔记: 1. 物理层的基本概念 物理层是解决在各种传输媒体上传输比特0和1的问题。 像用双绞线还是光纤或同轴电缆、接线器形状、尺寸、引脚数目、电压范围、某一电平的电压表示何种意义… 物理层为数据链路层屏蔽了各种传输媒体的差…

React学习32(深浅克隆之Immutable.js)

Immutable.js github地址:https://github.com/immutable-js/immutable-js 介绍 每次修改一个immutable对象时都会创建一个新的不可变的对象,在新对象上操作并不会影响到原 对象的数据,那Immutable这个库的实现是深拷贝还是浅拷贝&#xff…

【数据结构】优先级队列(堆)与PriorityQueue

目录 一、堆 二、Java里的集合类PriorityQueue 1、优先级队列的概念 2、构造方法 3、常用方法 1.入队offer 2.出队poll 3.获取队首元素peek 4.扩容机制 4、 注意事项 三、实现大根堆 1、准备字段 2、创建大根堆 3、offer 4、poll 5、peek 一、堆 如果有一个关键…

Selenium WebDriver定位策略(一)

WebDriver中使用的定位策略列表: 下面以百度搜索输入框为例进行讲解 1、按ID定位策略 通过元素的id属性来定位,前提:元素必须有id属性 driver.find_element_by_id("kw")2、按名称查找策略 通过元素的name属性来定位,前提&…

Go语言设计与实现 -- 关键字for和range

如果我们查看汇编代码的话,可以发现,经过优化的for-range循环的汇编代码和普通for的结构相同。也就是说,使用for-range的控制结构最终也会被Go语言编译器换成普通的for循环。 现象提出 现象1:循环永动机 func main() {arr : []…

如何在anaconda中配置graphviz包

文章目录GraphViz简介一:安装graphviz二:配置环境变量三:检测Graphviz是否配置成功。四:安装graphviz包GraphViz简介 graphviz是贝尔实验室开发的一个开源的工具包,它使用一个特定的DSL(领域特定语言):dot作为脚本语言…

android apk 目录结构

APK的目录结构 更改APK的后缀后,可以看到APK的组成如下: assets 其中assets中存放静态资源。 Res res中存放静态资源。 与assets不同之处,res文件夹下的所有文件会生成资源Id.lib 包括依赖的jar包库,so文件等。 so文件是利…

GD32F450以太网(2-2): PHY芯片IP101GR介绍

PHY芯片IP101GR 文章目录PHY芯片IP101GR1. 预备知识2. IP101GR简介3. IP101GR基于RMII接口的PCB设计重点解析3.1 时钟设置3.2. led灯设计3.3. PHY芯片地址设置4. pcb设计5. 寄存器描述6. 附加:IP101GR和GD32F450引脚连接情况1. 预备知识 接上文 《GD32F450以太网(…

液晶OLED接口MIPI之DSI协议学习

文章目录一、概念介绍MIPI----MIPI联盟发起的为移动应用处理器制定的开放标准MIPI-DSI---Display Serial Interface 2定义了处理器和显示模组之间的高速串行接口DCS---Display Command Set 显示命令集合(MIPI-DSI的command模式使用通用标准命令)DSC---Di…

字符串函数剖析(3)---strstr函数

1.strstr函数的巧妙 – 查找子字符串 1.1模拟实现strstr函数 strstr函数:在一个字符串中查找子串 学习新函数时,先去c库查找该函数的相关资料,更加助于你的学习 const char * strstr ( const char * str1, const char * str2 );先看函数的…

测开工具:spring boot 实现同步数据库表结构(持续更新)

一、使用场景 一个项目,有多套开发环境。有一套标准的数据库,不同的开发环境,有各自的一套数据库。 标准数据库的表结构经常发生变化,不同的开发环境中的数据库,需要与标准数据库的表结构保持一致。当标准数据库表结…

HNU编译原理实验一cminus_compiler-2022-fall

前言:实验不是很难,主要考察正则表达式部分 lab1实验报告实验要求 根据cminux-f的词法补全lexical_analyer.l文件,完成词法分析器,能够输出识别出的token,type ,line(刚出现的行数),pos_start(该行开始位置…

[机缘参悟-95] :不同人生、社会问题的本质

事情的本质是物极必反(轮回、周期) 社会的本质是优胜劣汰(迭代、发展) 道德的本质是伦理秩序(未定、秩序) 战争的本质是资源占用(弱肉、强食) 商业的本质是价值交换 金钱的本质…

基于JAVA SpringBoot+ JWT+Redis的ERP系统,VUE+Element-UI 前后端分离的Saas平台

项目简介 简云Saas平台 基于SpringBoot2.2.0, Mybatis, JWT, Redis, VUEElement-UI 的前后端分离的Saas平台管理系统 在线报表开发 在线表单设计 工作流设计 自定义打印模板定义 **产品分二个版本: 开源版本(包含了系统基础架构在线表单设计). 此版本代码完全开源ERP版本…

Flink-基本的合流操作

文章目录1.基本的合流操作2.1联合(Union)2.2 连接(Connect)2.基于时间的合流——双流联结(Join)2.1 窗口联结(Window Join)2.2 间隔联结(Interval Join)2.3 窗…

《面向对象分析与设计》总结

面向对象的软件工程1 面向对象的演化1.1 生活中复杂系统的特点1.2 软件系统的复杂性1.2.1 复杂性的四个方面1.2.1.1 问题域的复杂性1.2.1.2 管理开发的困难性1.2.1.3 软件中的灵活性1.2.1.4 描述离散系统行为1.2.2 复杂系统的五个属性1.2.2.1 层次结构1.2.2.1.1 对象结构1.2.2.…

数据分析神器:数据自动录入并生成BI报表

做报表、分析数据、做汇报是许多打工人的日常,每天都要耗费不少的时间用Excel来整理、清洗数据和生成好看的报表。如果这些数据都是手动整理、复制粘贴的话,不仅费时费力,而且很容易出错。 在越来越多企业采用SaaS产品和不同数据应用的今天&…

来看一个vue-element-表单之登录页面,最后送上一个登录页面

vue-element 表单之登录页面使用 0. 先留下属性表格 表单验证:Form 组件提供了表单验证的功能,只需要通过 rules 属性传入约定的验证规则,并将 Form-Item 的 prop 属性设置为需校验的字段名即可。 1. 表单属性表(el-form) 2. 表单项属性表…