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

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

题目描述

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;
    }
};
相关推荐
huanbailu7 分钟前
Qt 跨线程信号槽:connect 返回 true 但槽函数不执行的坑
开发语言·c++·qt·信号槽·跨线程·元类型
HEJOO923 分钟前
C++ 虚函数表(vtable)深度解析
开发语言·c++
Navigator_Z36 分钟前
LeetCode //C - 1275. Find Winner on a Tic Tac Toe Game
c语言·算法·leetcode
xailorliu1 小时前
矩阵定性-正定负定不定半正定半负定
c++·opencv·线性代数·计算机视觉·矩阵
个 人 练 习 生2 小时前
C++-----string基本使用详解
开发语言·c++·学习
朝朝辞暮i2 小时前
C++ 第 5 课:else if + 多条件判断 + && / || / !
开发语言·c++
千谦阙听2 小时前
【C++篇】:string类——常用接口、底层原理与深浅拷贝
开发语言·c++·学习·visual studio
特立独行的猫A2 小时前
c++的`std::future` 与 `std::promise` 简明教程(5分钟读完)
c++
特立独行的猫A2 小时前
C++ 异步编程:std::future 与 std::promise 详解(含 RPC 客户端实现实践)
c++·后端
All for pursuit.3 小时前
【分治-2】215.数组中的第K个最大元素
数据结构·c++·算法·leetcode