当前位置: 首页 > news >正文

JAVA练习313- 二叉树的右视图

题目概览

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

示例 1:

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

输出:[1,3,4]

解释:

示例 2:

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

输出:[1,3,4,5]

解释:

示例 3:

输入:root = [1,null,3]

输出:[1,3]

示例 4:

输入:root = []

输出:[]

提示:

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

来源:199. 二叉树的右视图 - 力扣(LeetCode)

解题分析

方法:广度优先搜索

每个右视节点就是每层最后一个节点,因此可以用广度优先搜索来遍历,返回每一层的最后一个节点。(广度优先搜索这里不细讲)

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

/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, TreeNode right) { * this.val = val; * this.left = left; * this.right = right; * } * } */ class Solution { public List<Integer> rightSideView(TreeNode root) { List<Integer> result = new ArrayList<>(); if (root == null) { return result; } Queue<TreeNode> queue = new LinkedList<>(); queue.offer(root); while(!queue.isEmpty()) { int size = queue.size(); TreeNode node = null; while(size-- > 0) { node = queue.poll(); if (node.left != null) { queue.offer(node.left); } if (node.right != null) { queue.offer(node.right); } } if (node != null) { result.add(node.val); } } return result; } }
http://www.jsqmd.com/news/1220503/

相关文章:

  • Redis的set和zset类及主要指令
  • Windows 11终极优化指南:5分钟告别臃肿,重获系统控制权
  • TMS320F2838x ADC中断机制与后处理模块深度解析
  • 手把手教你学 Simulink—— 双向 DC‑AC 逆变器并联运行时的环流抑制控制策略(Circulating Current Suppression Control, CCSC)
  • 多模态搜索指令全解析,从关键词到自然语言提问的7种进阶写法,Kimi官方未公开的Prompt语法手册
  • 多Agent协作系统设计:构建复杂任务的智能体团队
  • Fargate CLI证书管理:从申请到验证的完整流程
  • 如何利用cpu_rec快速识别物联网设备固件中的CPU架构:10个实用技巧
  • Copilot图表制作实战手册(企业级图表自动化落地全解析)
  • 成都LV包包回收价格怎么算?2026本地回收行情详解 - 易奢福
  • 浪琴官方售后服务:维修保 养、配件更换、延保政策全指南(2026年7月最新) - 浪琴中国服务中心
  • Go 高性能序列化方案:Protobuf、Msgpack 和 FlatBuffers 性能对比
  • Python 宏观经济实证 · 空间结构差异 - 动态分析 (2)
  • JAVA练习315- 从前序与中序遍历序列构造二叉树
  • Qwopus3.6-27B-Coder-4bit多语言支持详解:中文、英文、日文等多语言代码生成
  • 二年级奥数:(3):乘法含义 + 相同加数求和 + 2、5、25 凑整巧算
  • DFS、BFS与01BFS算法详解与对比
  • 【关注可白嫖源码】--课程设计--毕业设计--springboot校园心理咨询服务平台[编号:project81517](案件分析)
  • RoosterCollect-EV与MSC-EV生产工艺:外泌体清洁收集和规模化放大思路
  • 重庆旧房改造公司实测排行:工艺与售后核心维度 - 互联网科技品牌测评
  • 雷达中国官方售后服务中心|官方地址及售后热线权威信息通告(2026年7月最新) - 亨得利官方服务中心
  • WannaCry勒索软件终极恢复指南:如何免费解密被加密文件
  • 【音频基础学习】第 5 天,理解音量、增益和分贝
  • OpenHarmony 本地文件 FS 文件系统操作封装(API Version23 + 适配版)
  • `grpcio` 是 Google 开发的 gRPC 框架的 Python 实现,是一个高性能、开源的通用 RPC(远程过程调用)框架
  • JAVA练习314- 二叉树展开为链表
  • 如何安装与配置BlockLauncher:Android版Minecraft启动器的快速入门教程
  • Agent Function Calling 错误分类:网络超时权限与业务异常
  • Selene 源码解析:深入理解 Python 浏览器测试框架的设计原理
  • TMS320F2838x GPIO复用配置详解:从寄存器操作到多核控制