leetcode做题笔记199. 二叉树的右视图

news2024/11/13 15:07:38

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

 

示例 1:

 

e7b346f2c77d2d2609d2247882076224.jpeg

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

示例 2:

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

示例 3:

输入: []
输出: []

思路一:递归

c++解法

class Solution {
public:
    vector<int> rightSideView(TreeNode* root) {
        int depth=0;
        int h=0;
        vector<int> res;
        rightView(root,depth,0,res);
        return res;
    }
    void rightView(TreeNode* node,int& depth,int h,vector<int>& res)
    {
        if(node==nullptr) return;
            h++;
        if(h>depth)
            {
                res.push_back(node->val);
                depth++;
            }
        if(node->right)
            rightView(node->right,depth,h,res);
        if(node->left)
            rightView(node->left,depth,h,res);
        h--;
    }
};

分析:

本题要输出二叉树的右视图,可利用递归的方法,将最右边的子树不断放入栈中,最后输出,每放入一次深度加一,得到即为所求答案

总结:

本题考察递归在二叉树上的应用,利用递归调用上一遍历的子树将所要求的数放入栈中,最后输出答案

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1122739.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SD/SDIO(2):SDIO协议介绍和初始化流程

文章目录 1 标准/非标准SDIO规范2 SDIO引脚定义3 SDIO初始化流程3.1 由不支持I/O的主机初始化3.2 由支持I/O的主机初始化3.3 CMD5(IO_SEND_OP_COND)3.4 R4(CMD5的回复) 4 总结 1 标准/非标准SDIO规范 如下图所示&#xff0c;SDIO总线规范由物理层规范和SDIO规范定义。组合卡(包…

基于WebRTC构建的程序因虚拟内存不足导致闪退问题的排查以及解决办法的探究

目录 1、WebRTC简介 2、问题现象描述 3、将Windbg附加到目标进程上分析 3.1、Windbg没有附加到主程序进程上&#xff0c;没有感知到异常或中断 3.2、Windbg感知到了中断&#xff0c;中断在DebugBreak函数调用上 3.3、32位进程用户态虚拟地址和内核态虚拟地址的划分 …

Dockerfile 镜像创建

目录 一、创建镜像的三种方法&#xff1a; 二、基于已有镜像创建&#xff1a; 1.启动一个镜像&#xff1a; ​编辑 2.将修改后的容器提交为新的镜像&#xff1a; 三、基于本地模板创建&#xff1a; 1.下载模板&#xff1a; 2.导入为镜像&#xff1a; 四、基于Dockerfile 创…

AD9371 官方例程HDL详解之JESD204B TX_CLK生成 (一)

AD9371 系列快速入口 AD9371ZCU102 移植到 ZCU106 &#xff1a; AD9371 官方例程构建及单音信号收发 ad9371_tx_jesd -->util_ad9371_xcvr接口映射&#xff1a; AD9371 官方例程之 tx_jesd 与 xcvr接口映射 参考资料&#xff1a; UltraScale Architecture GTH Transceive…

Windows 11中无法通过默认应用更改文件关联

这里写自定义目录标题 现象解决方法 这里以.md格式文件为例。 现象 在 Windows 11 计算机上安装第三方软件后&#xff0c;关联 JPG、JPE、JPEG、PNG、MPG、MPEG、MD 等文件类型和其他文件类型的能力可能会受到阻碍。以下是尝试更改上述文件类型的文件关联时可能遇到的问题。 …

docker部署与基础操作

目录 一、Docker 概述&#xff1a; 1. docker简介&#xff1a; 2. 容器的优点&#xff1a; 3. 容器在内核中支持2种重要技术&#xff1a; 4 . 容器与虚拟机 的区别&#xff1a; 5. docker三个核心概念&#xff1a; 二、安装docker&#xff1a; 1. 关闭防火墙&#xff1a; 2. 安…

字节码进阶之JVM Attach API详解

字节码进阶之JVM Attach API详解 文章目录 字节码进阶之JVM Attach API详解附加到虚拟机加载代理和获取信息分离虚拟机 使用Attach API的基本步骤1. **获取虚拟机实例**&#xff1a;2. **附加到虚拟机**&#xff1a;3. **加载代理或获取信息**4. **从虚拟机分离**&#xff1a;…

GCC安装

查看gcc版本 gcc -vUsing built-in specs. COLLECT_GCCgcc COLLECT_LTO_WRAPPER/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper Target: x86_64-redhat-linux Configured with: ../configure --prefix/usr --mandir/usr/share/man --infodir/usr/share/info --with-…

Identity-Preserving Talking Face Generation with Landmark and Appearance Priors

主要问题:1)模型如何生成具有与输入音频一致的面部运动(特别是嘴部和下颌运动)的视频?2)模型如何在保留身份信息的同时生成视觉上逼真的帧? 摘要: 从音频生成说话脸部视频引起了广泛的研究兴趣。一些特定个人的方法可以生成生动的视频,但需要使用目标说话者的视频进行训…

【tg】6: MediaManager的主要功能

【tg】2:视频采集的输入和输出 的管理者是 media manager‘ media 需要 network的支持:NetworkInterface friend class MediaManager::NetworkInterfaceImpl;NetworkInterfaceImpl 直接持有 MediaManager 的指针即可:发送rtp包、rtcp包、设置socket选项?

SpringMVC系列-5 消息转换器

背景 SpringMVC系列的第五篇介绍消息转换器&#xff0c;本文讨论的消息转换指代调用Controller接口后&#xff0c;对结果进行转换处理的过程。 内容包括介绍自定义消息转换器、SpringMVC常见的消息转换器、Spring消息转换器工作原理等三部分。 本文以 SpringMVC系列-2 HTTP请求…

Android Settings解析

首语 Android设置应用是Android系统中一个非常重要的系统应用&#xff0c;它允许用户调整和设置系统的各种参数和功能&#xff08;系统设置/自定义设置/控制应用权限/开发者选项/系统信息等&#xff09;&#xff0c;使用户获得更好的使用体验。同时它一般也是Android系统开发者…

数据结构(递归,链表实现递归)

a.宏观描述&#xff1a;本质上说&#xff0c;递归将原问题转化为更小的同一问题。 b.递归本身也是一个函数&#xff0c;来完成某一功能。 1.递归终止的条件 2.递归操作 1.猴子吃桃问题 猴子第一天偷吃了该堆桃子的一半&#xff0c;觉得好吃多吃了一个&#xff1b;第二天吃了该堆…

【计算机网络】计算机网络中的一些基本概念

IP地址&#xff08;互联网协议地址&#xff09;&#xff1a; IP地址是分配给连接到互联网的设备的唯一标识符。它是由四个数字&#xff08;IPv4&#xff09;或者由八个数字&#xff08;IPv6&#xff09;组成。这些数字是网络层协议的一部分&#xff0c;它定义了数据包的路由。…

源码解析SpringMVC处理请求的完整流程

1.WebMvcAutoConfiguration EnableWebMvcConfiguration自动装配类负责加载SpringMVC涉及的HandlerAdapter、HandlerMapping、ExceptionHandlerExceptionResolver等。 SpringMVC利用 DispatchServlet 处理上游Tomcat的请求时,会被HandlerMapping、HandlerAdapter的相关子类分别…

Java JDK环境变量配置

JDK 安装和配置完成后&#xff0c;可以测试其是否能够正常运行。选择“开始”|“运行”命令&#xff0c;在打开的“运行”对话框中输入 cmd 命令&#xff0c;按 Enter 键进入到 DOS 环境下。 在命令提示符后输入并执行java -version命令&#xff0c;系统如果输出类似图 1 所示的…

Java类的继承

继承&#xff1a; 类的继承基本思想是基于某个父类进行扩展&#xff0c;得到一个新的子类&#xff0c;子类可以继承父类的原有属性和方法&#xff0c;也可以增加原来父类所不具备的属性和方法&#xff0c;或者重写父类中的方法; 重写&#xff1a; 【重写】也可以称为【覆盖】&…

阿里云服务结构--长期更新

CNCF 全称Cloud Native Computing Foundation&#xff08;云原生计算基金会&#xff09;&#xff0c;成立于 2015 年7月21日&#xff08;于美国波特兰OSCON 2015上宣布&#xff09;&#xff0c;其最初的口号是坚持和整合开源技术来让编排容器作为微服务架构的一部分&#xff0…

基于​Segment-and-Track Anything与ProPainter实现视频一键目标移除与一键祛除水印

一、 ProPainter 1.算法简介 ProPainter是由新加坡南洋理工大学&#xff08;Nanyang Technological University&#xff09;的S-Lab团队开发的一款视频修复工具。它融合了图像和特征修复的优势&#xff0c;以及高效的Transformer技术&#xff0c;旨在提供高质量的视频修复效果…

SolidWorks模型导入到Gazebo中

首先建立好solidworks模型&#xff0c;然后另存为stl格式&#xff0c; 导出为STL文件时&#xff0c;文件名最好不要是中文&#xff0c;并且要将后缀STL改为stl&#xff0c;否则Gazebo无法识别 这是我创建好的机器人充电桩模型&#xff1a; 尺寸是单位是mm&#xff1a; 135mm …