代码随想录二刷 |二叉树 | 二叉树的右视图

代码随想录二刷 |二叉树 | 二叉树的右视图

题目描述

199.二叉树的右视图

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

示例 1:

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

输出: [1,3,4]

示例 2:

输入: [1,null,3]

输出: [1,3]

示例 3:

输入: []

输出: []

提示:

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

解题思路

层序遍历的时候,判断是否遍历到单层的最后面的元素,如果是,就放进result数组中,随后返回result。

代码实现

cpp 复制代码
class Solution {
public:
    vector<int> rightSideView(TreeNode* root) {
		vector<int> result;
        queue<TreeNode*> que;
        if (root != NULL) que.push(root);
        while (!que.empty()) {
            int size = que.size();
            for (int i = 0; i < size; i++) {
                TreeNode* node = que.front();
                que.pop();
                if (i == (size - 1)) result.push_back(node->val);
                if (node->left) que.push(node->left);
                if (node->right) que.push(node->right);
            }
        }
        return result;
    }
};
相关推荐
Cuit小唐6 分钟前
C++ 单例模式详解
开发语言·c++·单例模式
爱吃巧克力的程序媛1 小时前
c++ 二级指针 vs 指针引用
c++
mahuifa1 小时前
(36)VTK C++开发示例 ---纹理贴图四边形
c++·vtk·cmake·贴图·3d开发
海码0071 小时前
【Hot 100】94. 二叉树的中序遍历
数据结构·c++·算法·二叉树·hot100
CodeWithMe1 小时前
【C/C++】Linux的futex锁
linux·c语言·c++
Wabi_sabi_x2 小时前
C++设计模式:面向对象的八大设计原则之二
开发语言·c++·设计模式
一道秘制的小菜2 小时前
AimRT从入门到精通 - 04RPC客户端和服务器
linux·运维·服务器·c++·aimrt
虾球xz2 小时前
游戏引擎学习第256天:XBox 控制器卡顿和修复 GL Blit 伽玛问题
c++·学习·游戏引擎·xbox
꧁坚持很酷꧂3 小时前
C++的基础知识(引用、类、封装、继承、多态、函数重载)
开发语言·c++
mahuifa3 小时前
(37)VTK C++开发示例 ---纹理地球
c++·vscode·vtk·3d地球