力扣 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节点逐渐推演,对应每层节点个数

相关推荐
地平线开发者6 小时前
profiler debug 工具用法与高一致性策略
算法·自动驾驶
编程大师哥6 小时前
匿名函数 lambda + 高阶函数
java·python·算法
我叫袁小陌6 小时前
算法解题思路指南
算法
地平线开发者6 小时前
Conv+BN+Add+ReLU 融合机制简介
算法·自动驾驶
yuanyuan2o27 小时前
模型预训练:Hugging Face Transformers 基础
算法·ai·语言模型·自然语言处理·nlp·深度优先
杨充7 小时前
1.3 浮点型数据设计灵魂
开发语言·python·算法
妄想出头的工业炼药师7 小时前
GS slam mono
算法·开源
_日拱一卒8 小时前
LeetCode:207课程表
java·数据结构·算法·leetcode·职场和发展
用户9874092388710 小时前
llamafactory 0.6.3 没有 llamafactory-cli
算法