当前位置: 首页 > news >正文

面试算法46:二叉树的右侧视图

题目

给定一棵二叉树,如果站在该二叉树的右侧,那么从上到下看到的节点构成二叉树的右侧视图。例如,图7.6中二叉树的右侧视图包含节点8、节点10和节点7。请写一个函数返回二叉树的右侧视图节点的值。
在这里插入图片描述

分析

既然这个题目和二叉树的层相关,因此可以应用广度优先搜索来解决。由于需要区分二叉树不同的层,因此在遍历时把不同层的节点放入不同的队列,也就是利用两个队列分别存放当前遍历的层和下一层的节点。

public class Test {public static void main(String[] args) {TreeNode node8 = new TreeNode(8);TreeNode node6 = new TreeNode(6);TreeNode node10 = new TreeNode(10);TreeNode node5 = new TreeNode(5);TreeNode node7 = new TreeNode(7);node8.left = node6;node8.right = node10;node6.left = node5;node6.right = node7;List<Integer> result = rightSideView(node8);System.out.println(result);}public static List<Integer> rightSideView(TreeNode root) {List<Integer> view = new LinkedList<>();if (root == null) {return view;}Queue<TreeNode> queue1 = new LinkedList<>();Queue<TreeNode> queue2 = new LinkedList<>();queue1.offer(root);while (!queue1.isEmpty()) {TreeNode node = queue1.poll();if (node.left != null) {queue2.offer(node.left);}if (node.right != null) {queue2.offer(node.right);}if (queue1.isEmpty()) {view.add(node.val);queue1 = queue2;queue2 = new LinkedList<>();}}return view;}
}
http://www.lryc.cn/news/213528.html

相关文章:

  • vite配置terser,压缩代码及丢弃console
  • R语言使用surveyCV包对NHANES数据(复杂调查加权数据)进行10折交叉验证
  • WOS与CNKI数据库的citespace分析教程及常见问题解决
  • NEFU数字图像处理(三)图像分割
  • UEditorPlus v3.6.0 图标补全,精简代码,快捷操作重构,问题修复
  • C++ Set
  • 基于知识库的chatbot或者FAQ
  • ZOC8 for Mac:超越期待的终端仿真器
  • 织梦dedecms后台档案列表显示空白或显示不了文章的解决方法
  • 10本值得阅读的量化交易书籍
  • c++通过对象的地址初始化指针,需要对指针进行释放么(企业链表衍生)
  • CentOS安装MySQL
  • AI:45-基于深度学习的声纹识别
  • Spring-cloud-openfeign拦截器RequestInterceptor接口
  • 自动化测试开发 —— 如何封装自动化测试框架?
  • Leetcode—2.两数相加【中等】
  • 拷贝音频、视频、word等二进制文件的实现方法,不掉帧
  • dmfldr-快速装载-载入(DM8:达梦数据库)
  • Postman测试金蝶云星空Webapi【协同开发云】
  • mongo常用操作符及查询例子
  • 41.排序练习题(王道2023数据结构第8章综合练习)
  • python爬虫,如何在代理的IP被封后立刻换下一个IP继续任务?
  • 小程序开发——小程序项目的配置与生命周期
  • C语言之用指针交换两个数
  • Day 48 动态规划 part14
  • 目标检测与图像识别分类的区别?
  • 群晖设置DDNS (服务商Godaddy被墙 DDNS-GO无法解析 采用自定义脚本方式完成DDNS更新)
  • 博客摘录「 MySQL不区分大小写设置」2023年10月31日
  • 【UE5】如何在UE5.1中创建级联粒子系统
  • SpringCloud(五) Eureka与Nacos的区别