
199. 二叉树的右视图
初始化一个队列,并将root节点入队。 初始化一个结果vector来保存最终的右侧节点值。 进入一个循环,持续处理队列中的节点,直到队列为空。 在每次循环中,获取队列的顶部节点并处理: 在处理完一个节点后,检查队列的大小: 处理完成后,返回结果vector。
发布日期:2021-05-28 05:49:46
浏览次数:30
分类:精选文章
本文共 602 字,大约阅读时间需要 2 分钟。
二叉树的遍历是一个常见的编程题目,其中一种常见的做法是按层次遍历,也就是广度优先遍历(BFS)。在我们的问题中,我们需要遍历二叉树的右侧节点的值,记录下来。解决方案可以通过队列来实现,但具体操作方式有两种不同的实现方法,我们可以根据需求选择。
第一种方法:使用vector记录每一层
这种方法的思路是,使用一个vector来存储每一层的节点值。由于是从左到右记录每一层的节点值,所以如果直接用这种方法可能会有一定的局限性。为了保证最后一个入队和出队的节点是最右边的,这种做法并不直接适用。
第二种方法:不使用vector记录每一层的节点值
这种方法利用了队列的特性,当队列的大小为0时,说明当前处理的节点是该层的右边节点,这样就可以将该节点的值添加到结果中。具体步骤如下:
- 如果该节点的右边孩子不是空的,将右边孩子入队。
- 如果该节点的左边孩子不是空的,将左边孩子入队。
- 当队列的大小为0时,说明这个节点是当前序列的最后一个节点,将该节点的值加入结果vector。
这种方法的优点是代码简洁,避免了额外的vector空间分配,能够高效地解决问题。
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2025年04月17日 11时10分49秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
初始微服务---Springcloud发展【第一期】
2019-03-13
RAFT 拜占庭将军 共识算法
2019-03-13
UE4 错误列表 error码(只记录我遇到的情况,持续添加,未完成)
2019-03-13
Android 架构组件 – 让天下没有难做的 App
2019-03-13
能解决数据可视化大屏需求的3款可视化工具
2019-03-13
多代理区块链框架客户端的操作
2019-03-13
一些技术博客
2019-03-13
第01问:MySQL 一次 insert 刷几次盘?
2019-03-13
优先级队列2
2019-03-13
TiKV 源码解析系列文章(十三)MVCC 数据读取
2019-03-13
Android 开发常用的工具类(更新ing)
2019-03-13
初次安装webpack之后,提示安装webpack-cli
2019-03-13
Hbase压力测试
2019-03-14
C#中的类、方法和属性
2019-03-14
Python爬虫训练:爬取酷燃网视频数据
2019-03-14
Python数据分析入门(十九):绘制散点图
2019-03-14
Callable中call方法和Runnable中run方法的区别
2019-03-14