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

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调试串口的示例代码

《利用Python调试串口的示例代码》在嵌入式开发、物联网设备调试过程中,串口通信是最基础的调试手段本文将带你用Python+ttkbootstrap打造一款高颜值、多功能的串口调试助手,需要的可以了... 目录概述:为什么需要专业的串口调试工具项目架构设计1.1 技术栈选型1.2 关键类说明1.3 线程模

Python Transformers库(NLP处理库)案例代码讲解

《PythonTransformers库(NLP处理库)案例代码讲解》本文介绍transformers库的全面讲解,包含基础知识、高级用法、案例代码及学习路径,内容经过组织,适合不同阶段的学习者,对... 目录一、基础知识1. Transformers 库简介2. 安装与环境配置3. 快速上手示例二、核心模

Java的栈与队列实现代码解析

《Java的栈与队列实现代码解析》栈是常见的线性数据结构,栈的特点是以先进后出的形式,后进先出,先进后出,分为栈底和栈顶,栈应用于内存的分配,表达式求值,存储临时的数据和方法的调用等,本文给大家介绍J... 目录栈的概念(Stack)栈的实现代码队列(Queue)模拟实现队列(双链表实现)循环队列(循环数组

使用Java将DOCX文档解析为Markdown文档的代码实现

《使用Java将DOCX文档解析为Markdown文档的代码实现》在现代文档处理中,Markdown(MD)因其简洁的语法和良好的可读性,逐渐成为开发者、技术写作者和内容创作者的首选格式,然而,许多文... 目录引言1. 工具和库介绍2. 安装依赖库3. 使用Apache POI解析DOCX文档4. 将解析

C++使用printf语句实现进制转换的示例代码

《C++使用printf语句实现进制转换的示例代码》在C语言中,printf函数可以直接实现部分进制转换功能,通过格式说明符(formatspecifier)快速输出不同进制的数值,下面给大家分享C+... 目录一、printf 原生支持的进制转换1. 十进制、八进制、十六进制转换2. 显示进制前缀3. 指

openCV中KNN算法的实现

《openCV中KNN算法的实现》KNN算法是一种简单且常用的分类算法,本文主要介绍了openCV中KNN算法的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录KNN算法流程使用OpenCV实现KNNOpenCV 是一个开源的跨平台计算机视觉库,它提供了各

使用Python实现全能手机虚拟键盘的示例代码

《使用Python实现全能手机虚拟键盘的示例代码》在数字化办公时代,你是否遇到过这样的场景:会议室投影电脑突然键盘失灵、躺在沙发上想远程控制书房电脑、或者需要给长辈远程协助操作?今天我要分享的Pyth... 目录一、项目概述:不止于键盘的远程控制方案1.1 创新价值1.2 技术栈全景二、需求实现步骤一、需求

Java中Date、LocalDate、LocalDateTime、LocalTime、时间戳之间的相互转换代码

《Java中Date、LocalDate、LocalDateTime、LocalTime、时间戳之间的相互转换代码》:本文主要介绍Java中日期时间转换的多种方法,包括将Date转换为LocalD... 目录一、Date转LocalDateTime二、Date转LocalDate三、LocalDateTim

jupyter代码块没有运行图标的解决方案

《jupyter代码块没有运行图标的解决方案》:本文主要介绍jupyter代码块没有运行图标的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录jupyter代码块没有运行图标的解决1.找到Jupyter notebook的系统配置文件2.这时候一般会搜索到

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.