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

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

题目描述

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;
    }
};
相关推荐
Nsequence几秒前
第四篇 STL-list
c++·算法·stl
HalvmånEver3 分钟前
Linux:深入剖析 System V IPC上(进程间通信八)
linux·运维·数据库·c++·system v·管道pipe
m0_7482500313 分钟前
C++ Web 编程
开发语言·前端·c++
YuTaoShao17 分钟前
【LeetCode 每日一题】712. 两个字符串的最小ASCII删除和——(解法三)状态压缩
算法·leetcode·职场和发展
承渊政道21 分钟前
C++学习之旅【C++String类介绍】
c语言·c++·vscode·学习
Swift社区27 分钟前
LeetCode 473 火柴拼正方形 - Swift 题解
算法·leetcode·swift
王老师青少年编程36 分钟前
2025年12月GESP真题及题解(C++八级): 宝石项链
c++·gesp·csp·信奥赛·八级·csp-s·提高组
郝学胜-神的一滴38 分钟前
深入理解Qt中的坐标系统:鼠标、窗口与控件位置详解
开发语言·c++·qt·程序人生
福楠38 分钟前
C++ | 继承
c语言·开发语言·数据结构·c++·算法
程序员zgh39 分钟前
汽车以太网协议 —— DDS
c语言·开发语言·c++·网络协议·udp·汽车·信息与通信