【Leetcode-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

代码详解:

java 复制代码
class Solution {  
    public List<Integer> rightSideView(TreeNode root) {  
        // 初始化一个ArrayList,用于存储结果  
        List<Integer> res = new ArrayList<>();  
        // 如果根节点为空,则直接返回空列表  
        if (root == null) {  
            return res;  
        }  
        // 初始化一个队列,用于层序遍历  
        Queue<TreeNode> queue = new LinkedList<>();  
        // 将根节点入队  
        queue.offer(root);  
  
        // 当队列不为空时,循环遍历  
        while (!queue.isEmpty()) {  
            // 获取当前层的节点数量  
            int size = queue.size();  
            // 遍历当前层的所有节点  
            for (int i = 0; i < size; i++) {  
                // 出队一个节点  
                TreeNode node = queue.poll();  
                // 如果该节点有左子节点,则将左子节点入队  
                if (node.left != null) {  
                    queue.offer(node.left);  
                }  
                // 如果该节点有右子节点,则将右子节点入队  
                if (node.right != null) {  
                    queue.offer(node.right);  
                }  
                // 如果当前节点是这一层的最后一个节点(即i等于size-1),则将其值添加到结果列表中  
                if (i == size - 1) {  
                    res.add(node.val);  
                }  
            }  
        }  
        return res;  
    }  
}
相关推荐
企业数字化笔记10 小时前
视频人体姿态怎么做三维可视化?2D关键点、深度局限与技术选型
人工智能·算法·音视频
?abc!11 小时前
(数组)581. 最短无序连续子数组
数据结构·算法·leetcode
小郎君65813 小时前
MPTT树复选框的半选状态:一棵百万节点树从递归到计数器,再到区间覆盖
算法
酌沧13 小时前
MemT让记忆成为模型内生能力
jvm·人工智能·算法
hold?fish:palm14 小时前
40 二叉树的直径
c++·leetcode
Shimeri14 小时前
越卷越像:我用遗传算法做了个"内卷"实验
算法·three.js·数据可视化·遗传算法·进化算法
Evand J15 小时前
【PMSM例程1】永磁同步电机(PMSM)转速与转子电角度观测算法|基于扩展卡尔曼滤波(EKF)的传感器状态估计与误差。附下载链接
算法·电机·1024程序员节·卡尔曼滤波
guo_wen_qiang15 小时前
二叉树的层序遍历-使用双端队列Deque
算法·leetcode·1024程序员节
爱读书的小胖15 小时前
LeetCode 55 跳跃游戏 C 语言解题分析
c语言·数据结构·算法·leetcode·1024程序员节
CCblandy15 小时前
前缀缓存命中率不靠引擎靠排列:本机仿真 3 轮,易变字段放开头 98.0%→0.0%
人工智能·python·算法·自然语言处理·性能优化