二叉搜索树的第K大节点(leetcode每日打卡)

2023-05-16

目录

题解

代码


题解

本文解法基于此性质:二叉搜索树的中序遍历为 递增序列 

根据以上性质,易得二叉搜索树的 中序遍历倒序 为 递减序列 。
因此,求 “二叉搜索树第 k 大的节点” 可转化为求 “此树的中序遍历倒序的第 k 个节点”。

题目指出:1≤k≤N (二叉搜索树节点个数);因此无需考虑 k > N 的情况。
若考虑,可以在中序遍历完成后判断 k>0 是否成立,若成立则说明 k > N 。

代码

class Solution {
    int res, k;
    public int kthLargest(TreeNode root, int k) {
        this.k = k;
        dfs(root);
        return res;
    }
    void dfs(TreeNode root) {
        if(root == null) return;
        dfs(root.right);
        if(k == 0) return;
        if(--k == 0) res = root.val;
        dfs(root.left);
    }
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

二叉搜索树的第K大节点(leetcode每日打卡) 的相关文章

  • maven配置连接MySQL数据库

    2019年7月9号 问题 xff1a maven项目中连接不上mysql数据库 问题 xff1a maven项目中连接不上mysql数据库 从昨晚调bug一直调到今天上午 xff0c 昨晚发现了是maven项目中mysql数据库连接的问题
  • python学习:最适合初学者的8本Python书籍

    Python是最友好的编程语言之一 xff0c 也因此成为初学者的首选 xff0c 为了帮助你更好更快的上手Python xff0c 并学会使用Python进行编程 xff0c 本文我们为初学者分享了最好的Python书籍 希望能够对你有所
  • 最适合Python入门到大牛必看的7本书籍,一定要收藏!

    Python零基础应该阅读哪些书籍 xff1f 我推荐这三本书 1 Python学习手册 xff08 第4版 xff09 以计算机科学家一样的思维方式来理解Python语言编程 xff0c 实用的学习指南 xff0c 适合没有Python编
  • 前端开发:深入使用proxy代理解决前端跨域问题

    在前端领域里面 xff0c 跨域指的是浏览器允许向服务器发送跨域请求 xff0c 进而克服Ajax只能同源使用的局限性限制 同源策略是一种约定 xff0c 而且是浏览器中最基本也是最核心的安全功能 xff0c 若缺少了该策略 xff0c 浏
  • 手工搭建Servlet实现

    现在作为一个Java程序员 xff0c 我们已经习惯了使用IDE和Web框架进行开发 xff0c IDE帮助我们做了编译 打包的工作 Spring框架则帮助我们实现了Servlet接口 xff0c 并把Servlet容器注册到了Web容器中
  • airflow 文档学习(二) - 概念

    1 核心功能 1 1 DAGs 有向无环图 反映所涉及的task的依赖关系 注 xff1a 搜索dag的时候 xff0c airflow只会关注同事包含 34 DAG 34 和 34 airflow 34 字样的py文件 1 2 scope
  • java使用枚举进行前后端交互,以列表方式返回前端

    在有些情况下 xff0c 有一些下拉选择器的数据项 xff0c 我们采取了枚举的方式返回前端一个列表 xff0c 但是里面的东西多 xff0c 前端不想写死 xff0c 需要提供接口返回 xff0c 如下图类似这种 第一步 xff1a 先创
  • python循环,16段代码入门Python循环语句,值得收藏!

    导读 本文重点讲述for语句和while语句 for语句属于遍历循环 xff0c while语句属于当型循环 除了两个循环语句外 xff0c 还介绍了break continue与pass三个用于控制循环结构中的程序流向的语句 在此基础之上
  • IntelliJ IDEA中Error java: 程序包org.slf4j不存在 解决办法

    前言 问题描述 是我这边重构一个工程的时候新建一个module 希望这个module仅仅做kafka消费的服务 刚刚搭建起来运行发现有异常 Error nbsp java 程序包org slf4j不存在 解决办法 很显然可以想到的就是这个里
  • Linux下的Ubuntu系统下载安装python3.9.0

    在安装python3 9 0之前 xff0c 首先要进行换源 xff0c 这样才能防止下载过慢的情况 我这里换的是阿里云的镜像源 xff0c 在终端输入一下命令 其他镜像源可以查看 xff1a https www myfreax com u
  • 操作系统的基本概念

    操作系统的基本概念 一 操作系统的基本概念1 1概念1 2特征1 2 1 并发1 2 2 共享1 2 2 1 互斥共享方式1 2 2 2 同时访问方式 1 2 3 虚拟1 2 4 异步 1 3 目的和功能1 3 1操作系统作为计算机系统资源
  • Android -No toolchains found in the NDK toolchains folder for ABI with prefix: arm-linux-androideabi

    1 原因分析 xff1a 最新版ndk xff08 version 61 25 1 8937393 xff09 的toolchains文件夹中无arm linux androideabi文件 2 解决方案 xff1a 同时安装低版本的ndk
  • Python中的函数

    一 前言 我们在写Python时 xff0c 经常需要用到函数 xff0c 在此来说一下函数 xff0c 也就是本章要介绍的函数的作用于使用步骤 文章内容有点长 xff0c 请耐心看完哦 xff0c 文末有惊喜 二 Python中函数的作用
  • Spring自学笔记(学完老杜视频后再进行修改)

    Spring 概念 Spring框架是一个储存对象的容器 xff0c 是一个轻量级的开源Java开发框架 xff0c 它的核心是控制反转 xff08 IoC xff09 和面向切面编程 xff08 AOP xff09 xff0c 它由20多
  • 5 个用于自动化的杀手级 Python 脚本

    Python 是一种功能强大的语言 xff0c 广泛用于自动执行各种任务 无论您是开发人员 系统管理员 xff0c 还是只是想通过自动化日常任务来节省时间的人 xff0c Python 都能满足您的需求 这里有 5 个 Python 脚本
  • 操作系统实验报告:生产者――消费者问题算法的实现

    生产者 消费者问题算法的实现 文章目录 生产者 消费者问题算法的实现实验内容1 问题描述 xff1a 2 功能要求 xff1a 背景知识1 xff0e 进程管理2 xff0e 信号量的有关知识 思路核心代码运行结果结论 实验内容 1 问题描
  • eslint 禁用命令

    eslint disable ESLint 在校验的时候就会跳过后面的代码 还可以在注释后加入详细规则 xff0c 这样就能避开指定的校验规则了 eslint disable no new 常用 xff1a 39 rules 39 34 c
  • Collections类(Java学习笔记)

    Collections 类是 Java 提供的一个操作 Set List 和 Map 等集合的工具类 Collections 类提供了许多操作集合的静态方法 xff0c 借助这些静态方法可以实现集合元素的排序 查找替换和复制等操作 下面介绍
  • 关于ubuntu中修改grub的一些操作

    电脑的型号 xff1a 联想小新pro14 ubuntu版本 xff1a ubuntu20 04 问题描述 xff1a 1 第一个问题 xff0c 在购买了联想小新后 xff0c 进入U盘的Ubuntu系统发现键盘失灵 xff0c 出现时灵
  • Selenium基础 — CSS选择器定位大全

    1 css属性定位 css选择器策略示例说明 id telA选择id 61 34 telA 34 的所有元素 class telA选择 class 61 34 telA 的所有元素 属性名 61 属性值 name 61 telA 除了id和

随机推荐