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

LeetCode199二叉树的右视图

题目描述

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

解析

  这一题的关键其实就是找到怎么去得到当前是哪一层级,可以利用队列对二叉树进行层次遍历,但是需要稍微修改下遍历方式,每次都将该层遍历完。

public List<Integer> rightSideView(TreeNode root) {if (root == null) {return new ArrayList<>();  // 返回空列表而非null}List<Integer> res = new ArrayList<>();Queue<TreeNode> queue = new LinkedList<>();queue.offer(root);while (!queue.isEmpty()) {int levelLength = queue.size();  // 当前层的长度for (int i = 0; i < levelLength; i++) {TreeNode node = queue.poll();// 仅在遍历到当前层最后一个元素时记录if (i == levelLength - 1) {res.add(node.val);}if (node.left != null) {queue.offer(node.left);}if (node.right != null) {queue.offer(node.right);}}}return res;}

  然后深度优先遍历也是可以求解。优先遍历右子树,同时记录下当前遍历到的层级即可。

public List<Integer> rightSideView(TreeNode root) {List<Integer> ans = new ArrayList<>();dfs(root, 0, ans);return ans;}private void dfs(TreeNode node, int depth, List<Integer> ans) {if (node == null) {return;}if (ans.size() == depth) {ans.add(node.val);}depth++;dfs(node.right, depth, ans);dfs(node.left, depth, ans);}

在这里插入图片描述

相关文章:

LeetCode199二叉树的右视图

题目描述 给定一个二叉树的 根节点 root&#xff0c;想象自己站在它的右侧&#xff0c;按照从顶部到底部的顺序&#xff0c;返回从右侧所能看到的节点值。 解析 这一题的关键其实就是找到怎么去得到当前是哪一层级&#xff0c;可以利用队列对二叉树进行层次遍历&#xff0c;但…...

JavaScript 基础

一 JavaScript 的书写形式 1.1 行内式 <input type"button" value"点我一下" onclick"alert(hello akai);" > 注意,JS 中的字符串常量可以用单引号表示,也可以使用双引号表示.HTML 中推荐使用双引号,JS 中推荐使用单引号(使用双引号容易…...

DOS学习-目录与文件应用操作经典案例-type

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一.前言 二.使用 三.案例 1. 查看文本文件内容 2. 同时查看多个文本文件内容 3. 合并文…...

QT教程-一,初识QT

目录 一,QT是什么&#xff1f;能够使用它做什么&#xff1f; 二&#xff0c;Qt 能够使用的语言 三&#xff0c;Qt主要用于什么领域&#xff1f; 四&#xff0c;Qt开发的软件 一,QT是什么&#xff1f;能够使用它做什么&#xff1f; Qt是一个跨平台的 C 开发库&#xff0c;主…...

SpringBoot搭建Eureka注册中心

系列文章目录 文章目录 系列文章目录前言前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 1、Spring-Cloud Euraka介绍 Spring-Cloud Euraka是Spring Cloud集合中一…...

day 38 435.无重叠区间 763.划分字母区间 56. 合并区间 738.单调递增的数字 968.监控二叉树

435.无重叠区间 思路 为了使区间尽可能的重叠所以排序来使区间尽量的重叠&#xff0c;使用左边界排序来统计重叠区间的个数与452. 用最少数量的箭引爆气球恰好相反。 代码 class Solution {public int eraseOverlapIntervals(int[][] intervals) {Arrays.sort(intervals,(a,…...

ssm/springoot养老院问诊服务预约系统_96316老年人服务系统

2.管理员&#xff1a; &#xff08;1&#xff09;登入注册页面&#xff1a;管理员进行操作时需要是已注册登入的 &#xff08;2&#xff09;权限管理&#xff1a;管理员登入后可以运用权限进行相应的操作管理。 &#xff08;3&#xff09;用户管理&#xff1a;对用户进行删除、…...

WordPress插件优化对提升性能有多大影响?

WordPress插件优化对提升性能的影响可以是非常显著的。插件是WordPress平台的一个重要组成部分&#xff0c;它们可以增强网站的功能和定制性。然而&#xff0c;如果插件没有经过优化&#xff0c;它们可能会成为网站性能的瓶颈。 通过优化插件&#xff0c;可以减少对服务器资源…...

Servlet的response对象

目录 HTTP响应报文协议 reponse继承体系 reponse的方法 响应行 public void setStatus(int sc) 响应头 public void setHeader(String name, String value) 响应体 public java.io.PrintWriter getWriter() public ServletOutputStream getOutputStream() 请求重定…...

Unity射击游戏开发教程:(20)增加护盾强度

在本文中,我们将增强护盾,使其在受到超过 1 次攻击后才会被禁用。 Player 脚本具有 Shield PowerUp 方法,我们需要调整盾牌在被摧毁之前可以承受的数量,因此我们将声明一个 int 变量来设置盾牌可以承受的击中数量。...

初识C语言——第二十八天

代码练习1&#xff1a; 用函数的方式实现9*9乘法表 void print_table(int n) {int i 0;int j 0;for (i 1; i< n; i){for (j 1; j< i; j){printf("%d*%d%-3d ", i, j, i * j);}printf("\n");}}int main() {int n 0;scanf("%d", &a…...

Android NDK系列(三)输入事件分发到Native层的流程

在Android NDK系列(一)手动搭建Native Project 创建的Native工程中,是可以接收输入事件的,只需在android_main中注册输入事件的处理函数,当触摸屏幕后,handleInputEvent函数便会调用,代码如下。 static int32_t handleInputEvent(struct android_app* app, AInputEvent…...

Kafka之【生产消息】

消息&#xff08;Record&#xff09; 在kafka中传递的数据我们称之为消息&#xff08;message&#xff09;或记录(record)&#xff0c;所以Kafka发送数据前&#xff0c;需要将待发送的数据封装为指定的数据模型&#xff1a; 相关属性必须在构建数据模型时指定&#xff0c;其中…...

asp.net core接入prometheus

安装prometheus和Grafana 参考之前的文章->安装prometheus和Grafana教程 源代码 dotnet源代码 新建.net core7 web项目 修改Program.cs using Prometheus;namespace PrometheusStu01;public class Program {public static void Main(string[] args){var builder We…...

C++ 变量类型与转换

C 变量类型与转换 文章目录 C 变量类型与转换变量int_tsize_t与ssize_tpid_ttime_t typenametypeid关键字类型转换编译期类型转换std::static_cast注意事项运行时类型转换std::dynamic_cast 变量 int_t 它是通过typedef定义的&#xff0c;而不是一种新的数据类型。 - int8_t…...

【杂七杂八】Huawei Gt runner手表系统降级

文章目录 Step1&#xff1a;下载安装修改版华为运动与健康Step2&#xff1a;在APP里进行配置Step3&#xff1a;更新固件(时间会很长) 目前在使用用鸿蒙4 111版本的手表系统&#xff0c;但是感觉睡眠检测和运动心率检测一言难尽&#xff0c;于是想到是否能回退到以前的版本&…...

FMEA做不出来的原因究竟是什么?——FMEA软件

免费试用FMEA软件-免费版-SunFMEA FMEA&#xff08;Failure Mode and Effects Analysis&#xff09;即故障模式与影响分析&#xff0c;是一种旨在识别并预防潜在问题的方法。然而&#xff0c;尽管其重要性被广泛认知&#xff0c;但在实际应用中&#xff0c;却常常遇到FMEA难以…...

pandas ExcelWriter写excel报错openpyxl.utils.exceptions.IllegalCharacterError

一直使用pandas写excel&#xff0c;本次写的数据有大字段&#xff0c;每次写到该字段就报错&#xff0c;代码如下&#xff1a; with pd.ExcelWriter(r".\提数_20240523\tq_type3_doc.xlsx", engineopenpyxl) as writer: df.to_excel(writer,indexFalse, sheet_namesh…...

Golang创建文件夹

方法 package zdpgo_fileimport ("os" )// AddDir 创建文件夹 func AddDir(dir string) error {if !IsExist(dir) {return os.MkdirAll(dir, os.ModePerm)}return nil }测试 package zdpgo_fileimport "testing"func TestAddDir(t *testing.T) {data : […...

头歌OpenGauss数据库-I.复杂查询第5关:至少学了某位学生(Oliver)所学的全部课程的学生

本关任务:根据提供的表和数据,查询至少学了Oliver同学所学的全部课程的其他同学的信息(学号s_id,姓名`s_name)。 student表数据: s_ids_names_sex01Mia女02Riley男03Aria女04Lucas女05Oliver男06Caden男07Lily女08Jacob男course表数据: c_idc_namet_id01Chinese0202Math…...

intv_ai_mk11效果实测:技术面试题生成能力——覆盖算法/系统设计/行为问题

intv_ai_mk11效果实测&#xff1a;技术面试题生成能力——覆盖算法/系统设计/行为问题 1. 测试背景与模型介绍 intv_ai_mk11是一款基于Llama架构的AI对话助手&#xff0c;拥有7B参数规模&#xff0c;专门针对技术场景进行了优化。本次测试聚焦于其在技术面试题生成方面的能力…...

AI时代,普通人必须知道的10个法律与版权风险

生成式AI的法律风险未经授权使用受版权保护的数据训练AI模型可能引发侵权诉讼。AI生成内容若与原创作品高度相似&#xff0c;可能被判定为抄袭。深度伪造与肖像权利用AI换脸或合成声音可能侵犯他人肖像权、名誉权。未经许可使用公众人物形象牟利&#xff0c;可能面临高额赔偿。…...

终极指南:gin-vue-admin前端错误监控告警配置详解 - 邮件与钉钉实时通知方案

终极指南&#xff1a;gin-vue-admin前端错误监控告警配置详解 - 邮件与钉钉实时通知方案 【免费下载链接】gin-vue-admin &#x1f680;ViteVue3Gin拥有AI辅助的基础开发平台&#xff0c;企业级业务AI开发解决方案&#xff0c;内置mcp辅助服务&#xff0c;内置skills管理&#…...

OpenClaw+Qwen3.5-9B:技术文档翻译与本地化自动化

OpenClawQwen3.5-9B&#xff1a;技术文档翻译与本地化自动化 1. 为什么选择这个技术组合&#xff1f; 去年参与一个开源项目时&#xff0c;我遇到了文档本地化的难题。项目文档有300多页Markdown文件&#xff0c;需要翻译成5种语言。传统翻译工具要么破坏格式&#xff0c;要么…...

用九齐单片机NY8B062F定时器实现精准延时与系统时基:从4ms中断到1秒计时的完整工程实践

九齐单片机NY8B062F定时器工程实战&#xff1a;构建高精度时基与延时系统 在嵌入式系统开发中&#xff0c;定时器如同设备的心跳&#xff0c;为各类功能提供精准的时间基准。九齐NY8B062F作为一款高性价比8位单片机&#xff0c;其四组灵活配置的定时器资源尤其适合小家电、智能…...

嵌入式轻量级数值优化库:面向MCU的确定性参数寻优方案

1. 项目概述Optimization 是一个面向嵌入式平台的轻量级数值优化库&#xff0c;专为 Arduino 及兼容 MCU&#xff08;如 STM32、ESP32、nRF52 等&#xff09;设计&#xff0c;其核心目标是在资源受限环境下&#xff0c;对用户定义的单目标标量函数 f(x₁, x₂, ..., xₙ) 进行参…...

头皮上也长痘痘,一梳头就碰到好痛怎么办?

很多人都有过头皮长痘的困扰&#xff0c;一梳头碰到就痛&#xff0c;别提多难受了。其实&#xff0c;头皮长痘和我们的健康息息相关&#xff0c;下面就来详细说说其中的原因和解决办法。痘痘成因大揭秘清洁不到位头皮和脸部皮肤一样&#xff0c;会分泌油脂。如果平时洗头不勤&a…...

雷军5小时拆车直播爆火!硬核技术成新风口,自媒体可直接做

4月2日晚&#xff0c;雷军5小时直播拆解新一代SU7引发全网热议&#xff0c;单场观看量突破1亿&#xff0c;弹幕满是“硬核”“专业”的好评。这场直播颠覆了技术内容的传播模式&#xff0c;从“参数堆砌”转向“实证拆解”&#xff0c;从“单向宣讲”升级为“双向互动”&#x…...

轻量级抢占式任务调度器:面向Arduino的毫秒级实时调度

1. 项目概述Task Scheduler是一款专为 Atmel AVR&#xff08;ATmega328P/ATmega2560&#xff09;与 ARM Cortex-M3&#xff08;SAM3X8E&#xff09;架构微控制器设计的轻量级、抢占式实时任务调度器&#xff0c;面向 Arduino 生态系统深度优化。其核心目标并非替代完整 RTOS&am…...

2025届学术党必备的十大降AI率助手实际效果

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 知网 AI 检测系统借助对文本的分析来生成逻辑以及进行语言模式识别&#xff0c;以此识别机器…...