力扣 hot100 Day46

199. 二叉树的右视图

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

cpp 复制代码
//自己写的
class Solution {
public:
    vector<int> rightSideView(TreeNode* root) {
        vector<int> result;
        if (!root) return result;
    
        queue<TreeNode*> q;
        q.push(root);
    
        while (!q.empty()) {
            int levelSize = q.size();     
            for (int i = 0; i < levelSize; ++i) {
                TreeNode* node = q.front();
                q.pop();
                if(i==levelSize-1)
                {
                    result.push_back(node->val);
                }            
                if (node->left) q.push(node->left);
                if (node->right) q.push(node->right);
            }        
        }    
        return result;
    }
};

其实就是返回层序遍历中每行的最后一个值,在其基础上小改即可

重温一遍层序遍历逻辑吧

利用队列存放每层节点,遍历到每个节点时,弹出该节点,同时队尾加入该节点的左右节点

levelSize的设定比较巧妙,从最开始root节点逐渐推演,对应每层节点个数

相关推荐
Alex艾力的IT数字空间11 分钟前
完整事务性能瓶颈分析案例:支付系统事务雪崩优化
开发语言·数据结构·数据库·分布式·算法·中间件·php
玖剹18 分钟前
二叉树递归题目(一)
c语言·c++·算法·leetcode
沧澜sincerely21 分钟前
BFS & 图论【各种题型+对应LeetCode习题练习】
leetcode·图论·广度优先
ChoSeitaku22 分钟前
线代强化NO6|矩阵|例题|小结
算法·机器学习·矩阵
Neil今天也要学习27 分钟前
永磁同步电机无速度算法--基于一阶线性状态观测器的反电动势观测器
算法
橘颂TA30 分钟前
【剑斩OFFER】算法的暴力美学——寻找峰值
数据结构·算法·力扣·c/c++
陈陈爱java30 分钟前
秋招八股算法常见
数据结构·算法
不穿格子的程序员33 分钟前
从零开始写算法——二分-寻找旋转排序数组中的最小值
数据结构·算法·leetcode·二分查找
小白程序员成长日记35 分钟前
2025.11.13 力扣每日一题
算法·leetcode·职场和发展
二川bro35 分钟前
第33节:程序化生成与无限地形算法
前端·算法·3d·threejs