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

每日一题(LeetCode)----二叉树-- 二叉树的右视图

每日一题(LeetCode)----二叉树-- 二叉树的右视图

1.题目(199. 二叉树的右视图)

  • 给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。

    示例 1:

    img

    输入: [1,2,3,null,5,null,4]
    输出: [1,3,4]
    

    示例 2:

    输入: [1,null,3]
    输出: [1,3]
    

    示例 3:

    输入: []
    输出: []
    

    提示:

    • 二叉树的节点个数的范围是 [0,100]
    • -100 <= Node.val <= 100

2.解题思路

思路一:层序遍历

1.使用一个队列 其中元素的类型为node类型的指针(这里的队列我们用的是c++中封装好的,其实是模板类,我们这里是通过模板类创建了一个对象)和一个结果数组,结果数组用来存最终的结果

2.定义一个变量来记录当前层元素的个数

3.初始时,我们将根节点放入到队列中去,当前层元素个数记为1(提示:每出队列一个元素,那么当前层元素的个数进行-1操作)

4.我们将队列中的首元素出列,并将其不为空的左孩子和右孩子入队,然后当前层元素个数-1,当当前层元素个数变为0时,我们将当前元素放入到我们的结果数组中,并获取下一层元素个数,重复这个操作,直到队列为空结束

5.返回结果数组

3.写出代码

思路一的代码

class Solution {
public:vector<int> rightSideView(TreeNode* root) {vector<int> res;if(root==nullptr){return res;}queue<TreeNode*> qe;int t=0;qe.push(root);t=1;while(!qe.empty()){TreeNode* temp=qe.front();qe.pop();if(temp!=nullptr&&temp->left!=nullptr){qe.push(temp->left);}if(temp!=nullptr&&temp->right!=nullptr){qe.push(temp->right);}t--;if(t==0){t=qe.size();res.push_back(temp->val);}}return res;}
};

相关文章:

  • 【智慧门店】东胜物联蓝牙网关助力解决方案商,推动汽车后市场企业智能化升级
  • Java:基本类型及它们的封装类
  • 复试 || 就业day05(2023.12.31)算法篇
  • SpringCloud(H版alibaba)框架开发教程,使用eureka,zookeeper,consul,nacos做注册中心——附源码(1)
  • IntelliJ IDEA [插件 MybatisX] mapper和xml间跳转
  • 【Spring Security】AuthenticationFailureHandler 用户认证失败后处理
  • 数据特征工程 | PSO粒子群算法的特征选择原理及python代码实现
  • web component - 使用HTML Templates和Shadow DOM构建现代UI组件
  • [BUG]Datax写入数据到psql报不能序列化特殊字符
  • C# MVC +Layui侧边导航栏的收缩及展开
  • VUE——IDEA 启动前端工程VS文件启动前端工程
  • 【操作系统】虚拟存储器
  • 相比于其他流处理技术,Flink的优点在哪?
  • N 皇后 II[困难]
  • 你好!Apache Seata
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • eclipse(luna)创建web工程
  • gitlab-ci配置详解(一)
  • HTML中设置input等文本框为不可操作
  • Java 内存分配及垃圾回收机制初探
  • rabbitmq延迟消息示例
  • Redis 懒删除(lazy free)简史
  • Travix是如何部署应用程序到Kubernetes上的
  • vue-cli在webpack的配置文件探究
  • yii2中session跨域名的问题
  • 测试开发系类之接口自动化测试
  • 经典排序算法及其 Java 实现
  • 前端相关框架总和
  • 双管齐下,VMware的容器新战略
  • 小李飞刀:SQL题目刷起来!
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • NLPIR智能语义技术让大数据挖掘更简单
  • Semaphore
  • 大数据全解:定义、价值及挑战
  • 国内开源镜像站点
  • ​草莓熊python turtle绘图代码(玫瑰花版)附源代码
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (13)DroneCAN 适配器节点(一)
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (4)事件处理——(7)简单事件(Simple events)
  • (55)MOS管专题--->(10)MOS管的封装
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (rabbitmq的高级特性)消息可靠性
  • (Ruby)Ubuntu12.04安装Rails环境
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • **python多态
  • .gitattributes 文件