45 二叉树的右视图

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

示例 1:

**输入:**root = 1,2,3,null,5,null,4

输出:1,3,4

解释:

示例 2:

**输入:**root = 1,2,3,4,null,null,null,5

输出:1,3,4,5

解释:

示例 3:

**输入:**root = 1,null,3

输出:1,3

示例 4:

**输入:**root = \[\]

输出:\[\]

提示:

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

使用层次遍历的方法遍历二叉树的每一层,然后取每一层的最后一个元素即可

cpp 复制代码
vector<int> rightSideView(TreeNode* root) {
    vector<int> res;
    if(!root) return res;
    queue<TreeNode*> inque;
    inque.push(root);
    int queSize=0;
    while(!inque.empty()){
        queSize=inque.size();
        for(int i=0;i<queSize-1;i++){
            root=inque.front();
            if(root->left) inque.push(root->left);
            if(root->right) inque.push(root->right);
            inque.pop();
        } 
        //处理每一层的最后一个元素
        root=inque.front();
        res.push_back(root);
        if(root->left) inque.push(root->left);
        if(root->right) inque.push(root->right);
        inque.pop();
    }
    return res;
}

推荐一个零声教育学习教程,个人觉得老师讲得不错,分享给大家:[Linux,Nginx ,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等技术内容,点击立即学习:链接

相关推荐
MI_farmer1 小时前
Anaconda 安装在 D 盘但虚拟环境跑到 C 盘,以及 Conda PermissionError: WinError 5 的解决方法
c语言·开发语言·conda
“AI国潮设计-小江”1 小时前
[AIGC实战] 基于Stable Diffusion的潮汕非遗IP自动化生成工作流(附Python批量处理脚本)
开发语言·人工智能·python·prompt·aigc
粤鼎恒业1 小时前
惠州工厂电子料回收厂家推荐:从交接单反推筛选标准
大数据·数据库·算法·硬件架构·硬件工程·pcb工艺·材料工程
ShineWinsu2 小时前
对于Redis:Redis的认识以及分布式系统的解析
linux·数据库·c++·redis·缓存·消息队列·分布式架构
布莱克6052 小时前
在C++中,构造函数能不能是虚函数?析构函数为什么要虚?
开发语言·c++·构造函数·析构函数·虚函数
落魄实习生2 小时前
Agent Scope Java 2.x 系列【1】核心架构
java·开发语言·架构
一水鉴天2 小时前
三套语言:STL SPL/ SQL 20260928(元宝)
开发语言
小爷毛毛(卓寿杰)2 小时前
【Agent 意图识别】输出协议、评估与置信度
人工智能·算法·大模型·prompt·大语言模型·agent
优质酸酸乳2 小时前
力扣100题之21合并两个有序链表
算法·leetcode·链表