力扣hot100 二叉搜索树中第k小的元素 分治 中序遍历

news2024/9/16 19:14:12

👨‍🏫 题目地址

在这里插入图片描述
👨‍🏫 参考题解

😋 分治

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
 	public int kthSmallest(TreeNode root, int k)
	{
		int n = nodeCount(root.left);//计算当前树的左子树的结点数
		if (n + 1 == k)// 说明根节点就是第 k 小的数
			return root.val;
		else if (n + 1 < k)// 说明第 k 小的数在当前树的 右子树的第(k-n-1)小处
			return kthSmallest(root.right, k - n - 1);
		else// 说明第 k 小的数在当前树的 左子树的 第(k)小处
			return kthSmallest(root.left, k);

	}

	/**
	 * @param root 当前树的根节点
	 * @return 当前树的总结点数(包含根节点)
	 */
	int nodeCount(TreeNode root)
	{
		if (root == null)
			return 0;
		return 1 + nodeCount(root.left) + nodeCount(root.right);
	}
}

😋 递归中序遍历

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 * int val;
 * TreeNode left;
 * TreeNode right;
 * TreeNode() {}
 * TreeNode(int val) { this.val = val; }
 * TreeNode(int val, TreeNode left, TreeNode right) {
 * this.val = val;
 * this.left = left;
 * this.right = right;
 * }
 * }
 */
class Solution {
    int num = 0;
    int res;

    public int kthSmallest(TreeNode root, int k) {
        inorderTraversal(root, k);
        return res;
    }

    private void inorderTraversal(TreeNode node, int k) {
        if (node == null || num > k) {
            return;
        }
        inorderTraversal(node.left, k);
        num++;
        if (num == k) {
            res = node.val;
            return;
        }
        inorderTraversal(node.right, k);
    }
}

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

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

相关文章

uni-app 从入门到精通 3天快速掌握 文字版 学习专栏

大家好&#xff0c;我是java1234小锋老师。 近日锋哥又卷了一波课程&#xff0c;uni-app 从入门到精通 3天快速掌握教程&#xff0c;文字版视频版。三天掌握。 2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中..._哔哩哔哩_bilibili2023版uniapp从…

报告解读:中国新一代终端安全市场洞察,2023

报告解读 中国新一代终端安全市场洞察 2023 安全防御的“最前线” 01 混沌的企业安全 以下来自CSO们最关注的安全热点问题&#xff1a; Q1我们如何看待当下泛化的终端安全&#xff0c;混合的IT环境企业面临的安全变化&#xff1f; IDC&#xff1a;伴随着全球数字化转型的快…

竞赛保研 基于机器视觉的手势检测和识别算法

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于深度学习的手势检测与识别算法 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f9ff; 更多资料, 项目分享&#xff1a; https://gitee.com/dancheng…

Swift并发的结构化编程

并发&#xff08;concurrency&#xff09; 早期的计算机 CPU 都是单核的&#xff0c;操作系统为了达到同时完成多个任务的效果&#xff0c;会将 CPU 的执行时间分片&#xff0c;多个任务在同一个 CPU 核上按时间先后交替执行。由于 CPU 执行速度足够地快&#xff0c;给人的错觉…

TDengine 荣获 2023 Frost Sullivan 客户价值领导力奖

近日&#xff0c;TDengine 被国际知名咨询公司沙利文&#xff08;Frost & Sullivan&#xff09;评为全球最佳工业数据管理解决方案&#xff0c;赢得了 2023 年客户价值领导力奖&#xff08;Frost & Sullivan duoxie&#xff09;&#xff0c;该奖项重点关注引领行业创新…

S32K312软件看门狗之Software Watchdog Timer (SWT)

S32DS的SDK中提供了Wdg&#xff0c;是属于MCAL层的&#xff0c;配置有点复杂&#xff0c;还需要以来Gpt、Mcu和Platform框架里的东西&#xff0c;配置到已经开发好的工程中还容易出现配置问题。本文主要讲解Software Watchdog Timer (SWT)的软件看门狗配置和使用示例&#xff0…

易点易动固定资产管理系统:集成飞书,助力企业全生命周期固定资产管理

易点易动固定资产管理系统&#xff1a;集成飞书&#xff0c;助力企业全生命周期固定资产管理 在现代商业环境中&#xff0c;固定资产管理对企业的运营和发展至关重要。为了提高管理效率和降低成本&#xff0c;我们引入了易点易动固定资产管理系统&#xff0c;该系统集成了飞书&…

技术学习|CDA level I 描述性统计分析(数据的描述性统计分析)

技术学习|CDA level I 描述性统计分析&#xff08;数据的描述性统计分析&#xff09; 数据的描述性统计分析常从数据的集中趋势、离散程度和分布形态3个方面进行。 一、集中趋势 集中趋势是指数据向其中心值靠拢的趋势。测量数据的集中趋势&#xff0c;主要是寻找其中心值。…

聚“工匠”建“双城”,《天府工匠》第二季如何为“双城经济圈”助力?

文&#xff5c;新熔财经 作者&#xff5c;和花 被火烧过破损不堪&#xff0c;还受了潮粘连在一起的古籍书页&#xff0c;如何快速被修复&#xff1f;直径只有0.05—0.07毫米的头发丝上&#xff0c;如何清晰不粘连雕刻出“心无旁骛”&#xff0c;还要确保头发丝不断裂&#xf…

Sectigo泛域名https证书有什么用

Sectigo旗下有泛域名https证书实现了同时为多个域名网站提供安全加密服务&#xff0c;虽然将域名网站的类型限制在了域名以及域名旗下的二级子域名中。Sectigo旗下的泛域名https证书分为DV基础型和OV企业型&#xff0c;提高了https证书对各个场景的适配。今天就随SSL盾小编了解…

主流桌面浏览器Chrome,FireFox和Edge等如何禁用弹出式窗口阻止程序,这里有详细步骤

为什么你想知道如何禁用浏览器中的弹出式窗口阻止程序?毕竟,弹出式窗口是网络的祸害:显示烦人的广告、虚假的安全消息和其他刺激,会分散你的浏览注意力,甚至可能包含恶意代码。 所有主要的桌面浏览器现在都默认阻止弹出式窗口,那么你到底为什么要取消阻止这些害虫呢?事…

自制数据库空洞率清理工具-C版-02-EasyClean-V1.1(支持南大通用数据库Gbase8a)

一、环境信息 名称值CPUIntel(R) Core(TM) i5-1035G1 CPU 1.00GHz操作系统CentOS Linux release 7.9.2009 (Core)内存3G逻辑核数2Gbase8a版本8.6.2-R43.34.27468a27EasyClean版本V1.1 二、简述 工作和兴趣相结合的产物&#xff0c;既能更好的完成工作&#xff0c;也能看看自…

springCould中的Hystrix【上】-从小白开始【7】

目录 1.简单介绍❤️❤️❤️ 2.主要功能 ❤️❤️❤️ 3.正确案例❤️❤️❤️ 4.使用jmeter压测 ❤️❤️❤️ 5.建模块 80❤️❤️❤️ 6.如何解决上面问题 ❤️❤️❤️ 7.对8001进行服务降级❤️❤️❤️ 8.对80进行服务降级 ❤️❤️❤️ 9.通用降级方法❤️❤️…

win10提示“KBDSF.DLL文件缺失”,游戏或软件无法启动运行,快速修复方法

很多用户在日常使用电脑的时候&#xff0c;或多或少都遇到过&#xff0c;在启动游戏或软件的时候&#xff0c;Windows桌面会弹出错误提示框“KBDSF.DLL文件缺失&#xff0c;造成软件无法启动或运行&#xff0c;请尝试重新安装解决”。 首先&#xff0c;先来了解DLL文件是什么&a…

【计算机毕业设计】SSM场地预订管理系统

项目介绍 本项目分为前后台&#xff0c;前台为普通用户登录&#xff0c;后台为管理员登录&#xff1b; 用户角色包含以下功能&#xff1a; 按分类查看场地,用户登录,查看网站公告,按分类查看器材,查看商品详情,加入购物车,提交订单,查看订单,修改个人信息等功能。 管理员角…

急急急!直接从压缩包打开文件,保存后再打开却找不到了怎么办???

这是我今天发生的蠢事&#xff0c;好险&#xff0c;改了一个上午的word文档&#xff0c;因为word突然未响应&#xff0c;强制关闭后再打开word文档找不到了才想起来自己没有解压缩就。。。。 &#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#…

绿色环保之选:探索智慧公厕公司厂家的可持续发展策略

随着城市化的不断推进&#xff0c;如何在城市中创造更为宜居的环境成为了当今社会亟待解决的问题。在这个背景下&#xff0c;智慧公厕公司厂家应运而生&#xff0c;不仅通过引入创新技术提升了公共卫生水平&#xff0c;更以其独特的可持续发展策略成为了绿色环保之选。 符合智慧…

未来十年不变的AI是什么?吴恩达等专家关于2024年AI发展趋势的预测

随着2024年的到来&#xff0c;人工智能领域正迎来前所未有的变革和发展。从深度学习到自然语言处理&#xff0c;AI技术的每一个分支都在经历着快速的进步。在这个关键的时刻&#xff0c;业界专家们提出了对未来趋势的深刻洞察&#xff0c;预测了将形成AI发展主流的关键方向。智…

DolphinScheduler实际应用

前言 最近公司新启动了一个项目&#xff0c;然后领导想用一下新技术&#xff0c;并且为公司提供多个大数据调度解决方案&#xff0c;我呢就根据领导要求调研了下当前的开源调度工具&#xff0c;最终决定采用DolphinScheduler&#xff0c; 因此研究了一下DolphinScheduler &…

JSON网络令牌JWT

1.什么是身份验证 日常生活中的身份验证的场景: 比如进入公司的大楼时&#xff0c;需要携带工牌&#xff1b;打卡上班时&#xff0c;需要指纹识别&#xff1b;打开工作电脑时&#xff0c;需要输入密码。 2. 什么是 JSON 网络令牌&#xff1f; JSON Web Token (JWT) 是一个开…