代码随想录算法训练营第十二天

2024-06-18 21:36

本文主要是介绍代码随想录算法训练营第十二天,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

144. 二叉树的前序遍历

文档讲解:代码随想录

视频讲解:关于二叉树,你该了解这些!| 二叉树理论基础一网打尽,二叉树的种类、二叉树的存储方式、二叉树节点定义、二叉树的遍历顺序_哔哩哔哩_bilibili

1.用递归。

2.递归结束条件是root为null。

3./

4.用了半个小时。

145. 二叉树的后序遍历

1.用递归。

2.递归结束条件是root为null。

3.递归那里忘记传入数组。

4.用了半个小时。

94. 二叉树的中序遍历

1.用递归。

2.递归结束条件是root为null。

3./

4.用了一分钟。

102. 二叉树的层序遍历

文档讲解:代码随想录

视频讲解:讲透二叉树的层序遍历 | 广度优先搜索 | LeetCode:102.二叉树的层序遍历_哔哩哔哩_bilibili

1.首先想用循环,但又感觉做不出来。

2. 利用队列的先进先出特性,同时记录一下树每一层的节点个数size,在开始读树的新一层时更新size, 循环size次将同一层的节点值保存进一个数组vector,size次后将vector作为一个元素保存进结果数组,当队列长度为0时代码执行结束。

3.最外层循环的边界条件没想清楚,左右节点入队时要判断是否为空。

4. 用了一个小时左右。

107. 二叉树的层序遍历 II

1. 二叉树层序遍历为基础改的题。

2. 没有看。

3.javascript array的unshift是从前面添加数组元素。

4. 用了十分钟左右。

199. 二叉树的右视图

1. 二叉树层序遍历为基础改的题。

2. 没有看。

3.javascript中获取数组最后一个元素不能通过arr[-1]来获取。

4. 用了十分钟左右。

429 . N 叉树的层序遍历

1. 二叉树层序遍历为基础改的题。

2. 没有看。

3.多子节点是存放在一个数组中。

4. 用了半个小时左右。

515 .在每个树行中找最大值

1. 二叉树层序遍历为基础改的题。

2. 没有看。

3.多子节点是存放在一个数组中。

4. 用了半个小时左右。

16 .填充每个节点的下一个右侧节点指针

1. 二叉树层序遍历为基础改的题。

2. 没有看。

3.javascript中可以通过Math.max.apply(null, arr)获取arr的最大值。

4. 用了半个小时左右。

117 .填充每个节点的下一个右侧节点指针

1. 二叉树层序遍历为基础改的题。

2. 没有看。

3.在如何连接指针那里想了一下,将二叉树层序遍历存放节点值修改为存放节点对象,就可以通过遍历二维数组中的每个层节点数组进行指针指向操作,不知道是否还有更好的方法。

4. 将二叉树层序遍历存放节点值修改为存放节点对象,就可以通过遍历二维数组中的每个层节点数组进行指针指向操作;用了一个小时左右。

104 ·二叉树的最大深度

1. 二叉树层序遍历为基础改的题。

2. 没有看。

3.在如何获得二叉树最大深度那里想了一下,遍历每一层节点值将其保存进一个数组作为二维数组的元素,有多少个这样的元素二叉树的深度就是多少,不知道是否还有更好的方法。

4. 遍历每一层节点值将其保存进一个数组作为二维数组的元素,有多少个这样的元素二叉树的深度就是多少;用了半个小时左右。

111 .二叉树的最小深度

1. 二叉树层序遍历为基础改的题。

2. 没有看。

3.在如何获得二叉树最小深度那里想了一下,遍历每一层时将节点保存进一个数组中,然后将层节点数组作为二维数组的一个元素,循环遍历这个二维数组中的每一个元素,如果该元素的左右子节点均为空,则这个元素所在的最外层索引下标+1即为二叉树的最小深度,不知道还有没有更好的方法。

4. 遍历每一层时将节点保存进一个数组中,然后将层节点数组作为二维数组的一个元素,循环遍历这个二维数组中的每一个元素,如果该元素的左右子节点均为空,则这个元素所在的最外层索引下标+1即为二叉树的最小深度;用了一个小时左右。

这篇关于代码随想录算法训练营第十二天的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1073122

相关文章

python使用Akshare与Streamlit实现股票估值分析教程(图文代码)

《python使用Akshare与Streamlit实现股票估值分析教程(图文代码)》入职测试中的一道题,要求:从Akshare下载某一个股票近十年的财务报表包括,资产负债表,利润表,现金流量表,保存... 目录一、前言二、核心知识点梳理1、Akshare数据获取2、Pandas数据处理3、Matplotl

Django开发时如何避免频繁发送短信验证码(python图文代码)

《Django开发时如何避免频繁发送短信验证码(python图文代码)》Django开发时,为防止频繁发送验证码,后端需用Redis限制请求频率,结合管道技术提升效率,通过生产者消费者模式解耦业务逻辑... 目录避免频繁发送 验证码1. www.chinasem.cn避免频繁发送 验证码逻辑分析2. 避免频繁

精选20个好玩又实用的的Python实战项目(有图文代码)

《精选20个好玩又实用的的Python实战项目(有图文代码)》文章介绍了20个实用Python项目,涵盖游戏开发、工具应用、图像处理、机器学习等,使用Tkinter、PIL、OpenCV、Kivy等库... 目录① 猜字游戏② 闹钟③ 骰子模拟器④ 二维码⑤ 语言检测⑥ 加密和解密⑦ URL缩短⑧ 音乐播放

Python使用Tenacity一行代码实现自动重试详解

《Python使用Tenacity一行代码实现自动重试详解》tenacity是一个专为Python设计的通用重试库,它的核心理念就是用简单、清晰的方式,为任何可能失败的操作添加重试能力,下面我们就来看... 目录一切始于一个简单的 API 调用Tenacity 入门:一行代码实现优雅重试精细控制:让重试按我

Python实现MQTT通信的示例代码

《Python实现MQTT通信的示例代码》本文主要介绍了Python实现MQTT通信的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 安装paho-mqtt库‌2. 搭建MQTT代理服务器(Broker)‌‌3. pytho

MySQL进行数据库审计的详细步骤和示例代码

《MySQL进行数据库审计的详细步骤和示例代码》数据库审计通过触发器、内置功能及第三方工具记录和监控数据库活动,确保安全、完整与合规,Java代码实现自动化日志记录,整合分析系统提升监控效率,本文给大... 目录一、数据库审计的基本概念二、使用触发器进行数据库审计1. 创建审计表2. 创建触发器三、Java

Java中的雪花算法Snowflake解析与实践技巧

《Java中的雪花算法Snowflake解析与实践技巧》本文解析了雪花算法的原理、Java实现及生产实践,涵盖ID结构、位运算技巧、时钟回拨处理、WorkerId分配等关键点,并探讨了百度UidGen... 目录一、雪花算法核心原理1.1 算法起源1.2 ID结构详解1.3 核心特性二、Java实现解析2.

Java中调用数据库存储过程的示例代码

《Java中调用数据库存储过程的示例代码》本文介绍Java通过JDBC调用数据库存储过程的方法,涵盖参数类型、执行步骤及数据库差异,需注意异常处理与资源管理,以优化性能并实现复杂业务逻辑,感兴趣的朋友... 目录一、存储过程概述二、Java调用存储过程的基本javascript步骤三、Java调用存储过程示

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性:

MySQL数据库的内嵌函数和联合查询实例代码

《MySQL数据库的内嵌函数和联合查询实例代码》联合查询是一种将多个查询结果组合在一起的方法,通常使用UNION、UNIONALL、INTERSECT和EXCEPT关键字,下面:本文主要介绍MyS... 目录一.数据库的内嵌函数1.1聚合函数COUNT([DISTINCT] expr)SUM([DISTIN