Java算法_ BST 中第 k 个最小元素 (LeetCode_Hot100)

news/2025/1/15 23:08:02/

题目描述:给定一个二叉搜索树的根节点 ,和一个整数 ,请你设计一个算法查找其中第 个最小元素(从 1 开始计数)。

获得更多?算法思路:代码文档,算法解析的私得。

运行效果
在这里插入图片描述

完整代码

/*** 2 * @Author: LJJ* 3 * @Date: 2023/8/21 13:31* 4*/
public class KthSmallestElement {static class TreeNode{int val;TreeNode left;TreeNode right;TreeNode(int val){this.val = val;}}private int count = 0; // 计数器,用于记录已经访问的节点个数private int result = 0; // 存储第 k 个最小元素的值public int kthSmallest(TreeNode root, int k){inorderTraversal(root,k); //开始中序遍历查找第k个最小元素return result;}private void inorderTraversal(TreeNode node, int k){if (node == null || count >= k){return; //诋毁终止条件,节点为空或计数器达到k}inorderTraversal(node.left, k); // 递归遍历左子树count++; //计数器加一if (count == k){result = node.val;      // 如果计数器等于 k,说明找到第 k 个最小元素}inorderTraversal(node.right, k); // 递归遍历右子树}public static void main(String[] args) {// 构建二叉搜索树TreeNode root = new TreeNode(5);root.left = new TreeNode(2);root.left.right = new TreeNode(4);root.right = new TreeNode(9);root.right.left = new TreeNode(6);root.right.right= new TreeNode(10);KthSmallestElement solution = new KthSmallestElement();int k = 3; // 要找第 k 个最小元素int result = solution.kthSmallest(root, k);System.out.println("第 " + k + " 个最小元素是: " + result); // 输出结果}
}

http://www.ppmy.cn/news/1048765.html

相关文章

数据在内存中的储存·大小端(文字+画图详解)(c语言·超详细入门必看)

前言:Hello,大家好,我是心跳sy😘,本节我们介绍c语言的两种基本的内置数据类型:数值类型和字符类型在内存中的储存方法,并对大小端进行详细介绍(附两种大小端判断方法)&am…

sql性能优化的相关面试专题

1.比如,现在有个面试官说,现在线上有个SQL执行很慢,你怎么优化? 这种时候最好分几步回答,不要一上来就说,该怎么怎么写SQL,面试时要学会,跳出来,看全貌,装进去&#xf…

浅析DIX与DIF(T10 PI)

文章目录 概述DIF与DIX端到端数据保护 DIFDIF保护类型 SCSI设备支持DIFStandard INQUIRY DataExtended INQUIRY Data VPD pageSPT字段GRD_CHK、APP_CHK、REF_CHK字段 READ CAPACITY(16)响应信息 SCSI命令请求读命令请求写命令请求 DIF盘格式化相关参考 概述 DIF与DIX DIF&…

前端框架学习-React(一)

React 应用程序是由组件组成的。 react 程序是用的jsx语法,使用这种语法的代码需要由babel进行解析,解析成js代码。 jsx语法: 只能返回一个根元素 所有的标签都必须闭合(自闭和或使用一对标签的方式闭合) 使用驼峰式…

微信删除的聊天记录怎么恢复?满满干货,建议收藏!

微信的出现逐渐改变了我们的社交方式,它架起了我们与朋友、家人以及同事之间的沟通桥梁,成为我们生活中不可缺失的一部分。 但是总会有那么点意外会发生,比如自己和朋友吵架了,一怒之下将朋友删除,导致所有聊天记录都…

解锁数据潜力:信息抽取、数据增强与UIE的完美融合

解锁数据潜力:信息抽取、数据增强与UIE的完美融合 1.信息抽取(Information Extraction) 1.1 IE简介 信息抽取是 NLP 任务中非常常见的一种任务,其目的在于从一段自然文本中提取出我们想要的关键信息结构。 举例来讲&#xff0…

详解RFC 3550文档-1

1. 介绍 rfc 3550描述了实时传输协议RTP。RTP提供端到端的网络传输功能,适用于通过组播或单播网络服务传输实时数据(如音频、视频或仿真数据)的应用。 TP本身不提供任何机制来确保及时交付或提供其他服务质量保证,而是依赖于较低层的服务来完成这些工作。它不保证传输或防止…

国标混凝土结构设计规范的混凝土本构关系——基于python代码生成

文章目录 0. 背景1. 代码2. 结果测试 0. 背景 最近在梳理混凝土塔筒的计算指南,在求解弯矩曲率关系以及MN相关曲线时,需要混凝土的本构关系作为输入条件。 1. 代码 这段代码还是比较简单的。不过需要注意的是,我把受拉和受压两种状态统一了…