每日一题(LeetCode)----二叉树-- 二叉树的右视图

每日一题(LeetCode)----二叉树-- 二叉树的右视图

1.题目(199. 二叉树的右视图

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

    示例 1:

    img

    输入: [1,2,3,null,5,null,4]
    输出: [1,3,4]
    

    示例 2:

    输入: [1,null,3]
    输出: [1,3]
    

    示例 3:

    输入: []
    输出: []
    

    提示:

    • 二叉树的节点个数的范围是 [0,100]
    • -100 <= Node.val <= 100

2.解题思路

思路一:层序遍历

1.创建一个队列,队列用来存二叉树节点(实际上是地址)和一个结果数组,结果数组用来存最终的结果

2.定义一个变量来记录当前层元素的个数

3.初始时,我们将根节点放入到队列中去,当前层元素个数记为1(提示:每出队列一个元素,那么当前层元素的个数进行-1操作)

4.我们将队列中的首元素出列,并将其不为空的左孩子和右孩子入队,然后当前层元素个数-1,当当前层元素个数变为0时,我们将当前元素放入到我们的结果数组中,并获取下一层元素个数,重复这个操作,直到队列为空结束

5.返回结果数组

3.写出代码

思路一的代码

class Solution {
public:
    vector<int> rightSideView(TreeNode* root) {
        vector<int> res;
        if(root==nullptr){
            return res;
        }
        queue<TreeNode*> qe;
        int t=0;
        qe.push(root);
        t=1;
        while(!qe.empty()){
            TreeNode* temp=qe.front();
            qe.pop();
            if(temp!=nullptr&&temp->left!=nullptr){
                qe.push(temp->left);
            }
            if(temp!=nullptr&&temp->right!=nullptr){
                qe.push(temp->right);
            }
            t--;
            if(t==0){
                t=qe.size();
                res.push_back(temp->val);
            }

        }

        return res;
    }
};

相关推荐

  1. Leetcode 199:视图

    2023-12-28 13:18:05       30 阅读
  2. LeetCode199.视图

    2023-12-28 13:18:05       25 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-28 13:18:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-28 13:18:05       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-28 13:18:05       82 阅读
  4. Python语言-面向对象

    2023-12-28 13:18:05       91 阅读

热门阅读

  1. 【linux】select实现定时器

    2023-12-28 13:18:05       49 阅读
  2. mac配置subl命令打开sublime

    2023-12-28 13:18:05       50 阅读
  3. 网络安全领域的12个大语言模型用例

    2023-12-28 13:18:05       56 阅读
  4. Spring Boot学习:Flyway详解

    2023-12-28 13:18:05       62 阅读
  5. 机器学习笔记--图的基本表示和特征工程

    2023-12-28 13:18:05       64 阅读
  6. 6、docker 安装mysql8

    2023-12-28 13:18:05       53 阅读
  7. ARMday7

    ARMday7

    2023-12-28 13:18:05      55 阅读
  8. a-range-picker实现默认时间各种时分秒时间要求

    2023-12-28 13:18:05       62 阅读
  9. linux | pause函数 、alarm函数、signal函数

    2023-12-28 13:18:05       50 阅读
  10. Flink导入StarRocks

    2023-12-28 13:18:05       48 阅读