【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;  
    }  
}
相关推荐
星马梦缘8 分钟前
算法设计导论 课堂笔记
算法·动态规划·分治·时间复杂度·最优二叉树
luj_176811 小时前
星火科技助力边远地区防病攻坚
c语言·开发语言·c++·经验分享·算法
geats人山人海13 小时前
数据结构第六章c语言 树的存储下二叉树的概念和存储
c语言·数据结构·算法
漂流瓶jz14 小时前
UVA-12627 奇怪的气球膨胀 题解答案代码 算法竞赛入门经典第二版
算法·图论·递归·aoapc·算法竞赛入门经典·uva·12627
jarvisuni14 小时前
DeepSeekFlash前端依旧拉垮,而且变慢了很多!
前端·javascript·算法
kobesdu14 小时前
流形上的优化:SO(3)与SE(3)的广义加减法在FAST-LIO中如何简化状态估计
人工智能·算法·fastlio
白狐_79815 小时前
408 数据结构算法题 01:线性表暴力求解保分指南
java·数据结构·算法
乐观勇敢坚强的老彭15 小时前
C++信奥:开关门、开关灯问题
开发语言·c++·算法
冻柠檬飞冰走茶15 小时前
PTA基础编程题目集 7-31 字符串循环左移(C语言实现)
c语言·开发语言·数据结构·算法
Hi李耶15 小时前
【LeetCode】4-寻找两个正序数组的中位数
算法·leetcode·职场和发展