news 2026/6/9 22:15:22

LC.230 | 二叉搜索树中第 K 小的元素 | 树 | 中序遍历计数

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LC.230 | 二叉搜索树中第 K 小的元素 | 树 | 中序遍历计数

输入:二叉搜索树根节点root,整数k(从 1 开始计数)。

要求:返回 BST 中第k小的元素。

输出:一个整数(第k小的节点值)。


思路:

BST + 中序遍历的经典应用:
BST 的中序遍历结果是严格递增序列,所以“第 k 小” = “中序遍历第 k 个访问到的节点”。

  1. k作为计数器(引用传递)
    中序遍历每访问一个节点就--k,当k == 0时当前节点值就是答案。

  2. 提前结束遍历(剪枝)
    递归函数返回bool

    • true表示已经找到答案,沿递归栈一路返回,不再继续遍历右子树/后续节点。
      这样避免无意义的遍历,尤其当k很小的时候很省事。

复杂度:

  • 时间复杂度:O(H + k)(最坏 O(N))
    走到最左边需要 O(H),然后访问到第 k 个需要 O(k)。极端情况下退化到 O(N)。
  • 空间复杂度:O(H)
    递归栈深度等于树高。

classSolution{public:intkthSmallest(TreeNode*root,intk){ans=-1;inorder(root,k);returnans;}private:intans;// 返回 true 表示已经找到答案,后续直接提前结束boolinorder(TreeNode*node,int&k){if(!node)returnfalse;if(inorder(node->left,k))returntrue;if(--k==0){ans=node->val;returntrue;}returninorder(node->right,k);}};
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 14:47:49

基于Springboot企业进销存管理系统【附源码+文档】

💕💕作者: 米罗学长 💕💕个人简介:混迹java圈十余年,精通Java、小程序、数据库等。 💕💕各类成品Java毕设 。javaweb,ssm,springboot等项目&#…

作者头像 李华
网站建设 2026/6/8 14:17:05

基于Springboot社区物资申报系统【附源码+文档】

💕💕作者: 米罗学长 💕💕个人简介:混迹java圈十余年,精通Java、小程序、数据库等。 💕💕各类成品Java毕设 。javaweb,ssm,springboot等项目&#…

作者头像 李华
网站建设 2026/6/9 22:43:09

低功耗设备中LCD显示屏串行接口优化方案

让LCD屏更省电:串行接口的实战优化策略你有没有遇到过这样的情况?设备明明已经进入了低功耗模式,但电流表上的读数就是下不去——一查,原来是LCD显示屏还在“偷偷”耗电。在可穿戴设备、智能传感器或远程医疗终端这类电池供电的产…

作者头像 李华
网站建设 2026/6/9 0:26:44

论文AI改写工具排行榜:8个平台一键降重与智能创作

目前市面上有多款AI论文辅助工具在降重、降低AIGC检测率以及论文写作方面表现突出,通过对8个主流平台的实测数据与用户反馈进行综合评估,这些工具在生成效率、内容准确性和操作便捷性等方面各具优势,为学术研究者提供了从初稿撰写到重复率优化…

作者头像 李华
网站建设 2026/6/9 22:37:08

基于SpringBoot的青年大学习记录管理系统的设计与实现

基于SpringBoot的青年大学习记录管理系统的设计与实现 一、系统总体设计 基于SpringBoot的青年大学习记录管理系统以“规范学习记录、提升组织效率、强化数据监管”为核心目标,解决传统青年大学习管理中记录分散、统计耗时、参与情况不透明等问题,适配高…

作者头像 李华
网站建设 2026/6/9 1:03:06

利用施密特触发器抑制随机噪声:手把手实现电路设计

施密特触发器实战指南:用迟滞电压驯服噪声,打造坚如磐石的数字输入 你有没有遇到过这种情况——一个简单的按键按下,MCU却收到五六个中断?或者传感器信号明明应该稳定,GPIO读回来却频繁跳变?你以为是代码出…

作者头像 李华