zoukankan      html  css  js  c++  java
  • 【LeetCode】199. 二叉树的右视图

    题目

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

    示例:

    输入: [1,2,3,null,5,null,4]
    输出: [1, 3, 4]
    解释:
    
       1            <---
     /   
    2     3         <---
          
      5     4       <---
    

    思路

    层次遍历取当前层最后一个数放入结果集。

    代码

    时间复杂度:O(n)
    空间复杂度:O(n)

    class Solution {
    public:
        vector<int> rightSideView(TreeNode* root) {        
            vector<int> res;
            if (!root) return res;
            queue<TreeNode*> que;
            que.push(root);        
            while (!que.empty()) {
                int size = que.size();
                for (int i = 0; i < size; ++i) {
                    TreeNode *node = que.front();
                    if (i == size - 1) res.push_back(node->val);
                    if (node->left) que.push(node->left);
                    if (node->right) que.push(node->right);
                    que.pop();
                }      
            }
            return res;
        }
    };
    
  • 相关阅读:
    缓存(二)
    缓存
    SQL Server 导入大数据脚本
    C#执行OracleHelper
    MERGE 用法
    c# 高效读写文件
    C#网络编程
    C#常用IO流与读写文件
    注册asp.net 4.0 到iis
    javascript原生图片懒加载
  • 原文地址:https://www.cnblogs.com/galaxy-hao/p/12756462.html
Copyright © 2011-2022 走看看