当前位置:网站首页>Leetcode中使用BFS解决二叉树相关题目的行动指南
Leetcode中使用BFS解决二叉树相关题目的行动指南
2022-07-20 16:47:00 【Bert.King】
历史从不支持那种仅凭善意就能迎来盛世的观点。
广度优先搜索
掌握了BFS的模板,我们首先可以拿经典的102. 二叉树的层序遍历练手。
进一步的掌握Leetcode的相关题目。
1. 二叉树BFS的代码模板
我相信对于计算机专业相关的朋友,可能依稀记得BFS和DFS在数据结构中的《图》章节进行引入介绍的。
其实对于这两种遍历方式,真正需要我们关注的是:核心思想和使用场景。
这里仅仅介绍一下用于遍历二叉树的BFS模板,后面再深入讲解其它地方的使用:
//第一步: 要使用『队列』这种数据结构
Queue<TreeNode> queue = new LinkedList<>();
queue.offer(root); // 这里需要注意判空
while(!queue.isEmpty()){
int size = queue.size();
// 注意这里采用while,有时候采用for()更加方便,随机应变
while(size > 0){
// 在这个while里面处理的就是每一层的逻辑
TreeNode cur = queue.poll();
// 这里进行相关逻辑处理(一般)
if(cur.left != null){
queue.offer(cur.left);
}
if(cur.right != null){
queue.offer(cur.right);
}
size--;
}
}
下面有兴趣的话,跟着我来验证一下上面的模板吧!!!
2. 实战环节
根据我的刷题经验,在这里将合适的刷题顺序总结如下:
第1道:102. 二叉树的层序遍历
品尝一下模板有多香。
第2道:107. 二叉树的层序遍历 II
自底向上的层序遍历。最low的办法就是按照正常的层次遍历来解,最后翻转一下即可。但是这都2021年啦
ArrayList的add(0,E)实现头插法,或者LinkedList的addFirst().
第3道:103. 二叉树的锯齿形层序遍历
如果不习惯处理下标,那么可以考虑LinkedList的addLast()和addFirst()
第4道:199. 二叉树的右视图
看懂题意的话,只需要判断一下是否是每层的最后一下即可
第4道:515. 在每个树行中找最大值
每行的内容我都知道了,求个最大值而已,这个给道开胃菜…
第5道:637. 二叉树的层平均值
最大值咱都可以搞定,平均值?闹呢…
后续找时间接着补充…
边栏推荐
猜你喜欢
正負折線圖凸顯數據趨勢變化
移动边缘计算终端如何赋能高校学习空间智慧管理
Wechat applet 21 improve video page ②
网络安全学习(六)DNS部署与安全
让软件开发民主化的低代码
2021-09-17
使用Kettle连接MySQL数据库错误
山东大学、北邮、哈工大| Multimodal Dialog Systems with Dual Knowledge-enhanced Generative Pretrained Language Model(具有双重知识增强生成预训练语言模型的多模态对话系统)
Network Security Learning (IX) comprehensive experiment & PKI
sqlilabs less-27
随机推荐
Wechat applet 03 data hijacking agent and event binding
《程序设计基础》 第十章 函数与程序结构 6-13 分治法求解金块问题 (20 分)
Influxdb query timestamp problem
微信小程序 24 播放音乐页的完善①
"Fundamentals of program design" Chapter 10 function and program structure 6-11 recursive calculation of P function (15 points)
Network Security Learning (VII) IIS
Network Security Learning (IX) comprehensive experiment & PKI
智能科学创新讲堂 | 自动化所何晖光: 基于视觉信息编解码的深度学习类脑机制研究
"Hisense's B-side" technology exhibition opens! Hisense B2B represents the first collective appearance of products!
移动边缘计算终端如何赋能高校学习空间智慧管理
Uniapp applet adds custom check box style
Kettle Job实现每6s就运行一个Kettle的转换任务
RichTextbox保存为图片
Wechat applet 19 video list
《程序设计基础》 第十章 函数与程序结构 7-3 递归实现逆序输出整数 (15 分)
Video object segmentation
高薪程序员&面试题精讲系列126之消息队列中积压了一百多万条消息怎么办?如何保证消息的一致性?
正負折線圖凸顯數據趨勢變化
K3s deploy rancher
低资源语言的语义模糊设置中的复杂 NER