LeetCode[剑指Offer54]二叉搜索树的第K大节点

news2025/8/12 9:51:30

难度:简单

题目:

给定一棵二叉搜索树,请找出其中第 k 大的节点的值。

示例 1:

输入: root = [3,1,4,null,2], k = 1
   3
  / \
 1   4
  \
   2
输出: 4

 示例 2:

输入: root = [5,3,6,2,4,null,null,1], k = 3
       5
      / \
     3   6
    / \
   2   4
  /
 1
输出: 4

限制:

  • 1 ≤ k ≤ 二叉搜索树元素个数

Related Topics

  • 深度优先搜索
  • 二叉搜索树
  • 二叉树

重点!!!解题思路

第一步:

此题我们首先采用递归和栈的思想来解决

根据此题例子可知,所有比根节点大的节点都在右子树,比根节点小的节点都在左子树

如果想求第k大个节点,一定是从右子树中找起

第二步:

判断,当k大于右子树节点总和时,那么k肯定在左子树中

如果k=右子树节点总和+1时,那么k是根节点

如果k小于右子树节点总和时,那么k肯定在右子树中

已知上述结论,此题易解

源码:

class Solution {
    public int kthLargest(TreeNode root, int k) {
        int cnt=getCount(root.right);  //得到右子树的所有节点
        if (cnt>=k) return kthLargest(root.right,k);  //以下开始递归求解
        if (cnt+1==k) return root.val;
        return kthLargest(root.left,k-cnt-1);
    }
    public int getCount(TreeNode root) {
        if (root==null) return 0;
        return 1+getCount(root.left)+getCount(root.right);
    }
}

运行结果:

 

如果您还有什么疑问或解答有问题,可在下方评论,我会及时回复。 

系列持续更新中,点个订阅吧

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

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

相关文章

[附源码]java毕业设计旅游网站

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Nodejs编写接口

编写接口 1.自定义路由模块 const expressrequire(express) const routerexpress.Router()// 挂载对应的路由 router.get(/get,(req,res)>{// 通过req.query获取客户端通过查询字符串,发送到服务器的数据const queryreq.query// 调用res.send()方法&#xff0c…

集成学习-Bagging和Boosting算法

文章目录集成学习Bagging随机森林BostingAdaboostGBDTXGBoost集成学习 集成学习(ensemble learning)博采众家之长,通过构建并结合多个学习器来完成学习任务。“三个臭皮匠顶个诸葛亮”,一个学习器(分类器、回归器&…

【微服务】SpringCloud微服务续约源码解析

目录 一、前言 二、客户端续约 1、入口 1.1、构造初始化 1.2、initScheduledTasks() 调度执行心跳任务 2、TimedSupervisorTask组件 2.1、构造初始化 2.2、TimedSupervisorTask#run()任务逻辑 3、心跳任务 3.1、HeartbeatThread私有内部类 3.2、发送心跳 3、发送心…

使用OpenAPI提升网关安全的开源软件,诚邀小伙伴参与

看过我博客的人都知道,我们是一家推广OpenAPI的企业。 OpenAPI是一种用于定义API结构的规范,在Java里我们可以使用swagger进行自动生成。其他语言也可以(Golang等)。通过这种对开发人员零成本的工具,我们可以高效的获…

典型的偏微分方程数值解法

马上要参加亚太杯啦,听说今年亚太杯有经典的物理题,没什么好说的,盘它! 偏微分方程的数值解十分重要 椭圆型偏微分方程(不含时) 数值解法 二维拉普拉斯方程 例 边界条件 import numpy as np import mat…

教你如何使用云服务器搭建我的世界Minecraft服务器(超级简单-10分钟完成)

一个人玩游戏没啥意思,和朋友一块联机呢,距离太远,家庭局域网宽带又没有公网ip,你的朋友没办法与你联机,然而你只需要一台服务器即可搞定了;但是很多用户没没接触过相关的内容,具体的该怎么操作…

怎样做音乐相册怎样制作?手把手教你制作

大家平时出门游玩的时候,会拍摄一些好看的照片吗?那你们会将这些照片分享在社交平台上吗?普通的照片分享,有时会显得比较枯燥单调,其实我们可以将这些照片制作成音乐相册,这样就可以丰富照片的内容&#xf…

传输层-用户数据报协议(UDP)

UDP协议概述 用户数据报协议 UDP 是 Internet 传输层协议,提供无连接、不可靠、数据报尽力传输服务。 无连接:因此在支持两个进程间通信时,没有握手过程。不可靠:当应用进程将一个报文发送近 UDP 套接字时,UDP 并不能…

python+vue+elementui固定资产管理系统django mysql

目 录 摘 要 I ABSTRACT I 目 录 III 第1章 绪论 1 1.1开发背景 1 1.2开发意义 1 1.3研究内容 1 第2章 主要技术和工具介绍 3 前端技术:nodejsvueelementui 我们最初的项目结构由五个文件组成: manage.py:使用…

为什么管理类硕士(MBA/MEM/MPA)报考会成为职场人的香饽饽?

没个硕士学位,将来出门可能真的都不好意思打招呼了。近些天传言2023年考研人数达到接近550万的信息满天飞,无论真假,从目前已公布报考人数的院校来看,在去年的457万基础上再涨一波的几率是很大的。这其中,报考管理类、…

电科大离散数学-2-命题逻辑-1

目录 2.1 什么是命题 2.1.1 命题的定义 2.1.2 复合命题 2.2 命题联结词 2.2.1 否定联结词 2.2.2 合取联结词 2.2.3 析取联结词 2.2.4 蕴涵联结词 2.2.5 等价联结词 2.3 命题符号化及应用 2.3.1 命题连接词总结 2.3.2 命题联结词的优先级 2.3.3 命题联接词与开关电…

scala

Scala 概述 Scala是一门以Java虚拟机(JVM)为运行环境并将面向对象和函数式编程的最佳特性结合在一起的 静态类型编程语言(静态语言需要提前编译的如:Java、c、c等,动态语言如:js)。 Scala是一…

4-20mA转RS-485,Modbus数据采集模块 YL121

特点: ● 模拟信号采集,隔离转换 RS-485输出 ● 采用12位AD转换器,测量精度优于0.1% ● 通过RS-485接口可以程控校准模块精度 ● 信号输入 / 输出之间隔离耐压1000VDC ● 宽电源供电范围:8 ~ 32VDC ● 可靠性高,…

equals与==判断相等

一、 判断相等,判断的是物理地址相等。 二、equals 判断相等 equals 与hashCode 都是Object的方法。 所有的类都继承于Object,如果不重写equals。equals判断相等,底层也是使用来判断物理地址相等。 public boolean equals(Object obj) {re…

影响MySQL索引B+树高度的是什么?

提到MySQL,想必大多后端同学都不会陌生,提到B树,想必还是有很大部分都知道InnoDB引擎的索引实现,利用了B树的数据结构。 那InnoDB 的一棵B树可以存放多少行数据?它又有多高呢? 到底是哪些因素会对此造成影…

【软件测试】测试人的职责,我就是不当背锅侠......

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 测试的目的&#xf…

基于机器视觉的移动消防机器人(四)--实验验证

本文素材来源于北方民族大学 机电工程学院 作者:牟义达、黄瑞翔、李涛 指导老师:田国禾、张春涛 1. 自主行走功能验证 实验目的:让机器人小车行驶500ms后停500ms,循环重复。 实验器材:计算机、消防机器人小车。 实…

ACM MM ECCV 2022 | 美团视觉8篇论文揭秘内容领域的智能科技

人工智能技术正在成为内容领域的中台力量,其中视觉AI已经渗透到内容生产、内容审核、内容分发、用户互动、商业化变现等各个环节。美团视觉智能部以场景化的内容产品、智能化的内容工具助力产业,在内容的创作、内容分发等环节应用广泛。 前不久&#xff…

开源项目让你也可以尝试玩转工业物联网以及智慧工厂(智能制造),IOT开源网关、SCADA取数开源、PLC数据采集

物联网进入与传统产业深度融合发展的崭新阶段。未来10年内,全球物联网将创造10多万亿美元的价值,约占全球经济的1/10,并与城市管理、生产制造、汽车驾驶、能源环保等形成数个千亿级规模以上的细分市场。 随着物联网技术的快速发展&#xff0c…