当前位置: 首页 > news >正文

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);}};
http://www.jsqmd.com/news/125593/

相关文章:

  • 小程序springboot校园学生宿舍报修管理系统_th4x9yos
  • 【好写作AI】你不是不会写,只是少了一个好工具:补齐论文写作的“关键一环”
  • Fmoc保护的双糖基化丝氨酸砌块——复杂糖肽化学合成的精密引擎 CAS号: 878483-09-1
  • Gemini vs GPT-4 vs Claude免费额度对比
  • 小程序springboot校园智能垃圾分类回收预约平台_myez9h59
  • Unicode中如何表示未收录的生僻字 --浅谈IDS
  • 幽冥大陆(六十) SmolVLM 本地部署 轻量 AI 方案—东方仙盟筑基期
  • ModbusRTU报文结构完整指南(主从模式)
  • 智能论文改写工具推荐,8款AI平台助你轻松完成写作
  • 一文说清Batocera游戏整合包的ROM目录结构与规范
  • RISC理念在ARM中的体现:通俗解释
  • 【好写作AI】从害怕写作到享受表达:AI改变了什么?——论文作者的心态重塑之旅
  • 8个AI论文辅助网站对比,提供专业降重与内容生成服务
  • Elasticsearch日志接入Kibana的项目应用详解
  • LC.99 | 恢复二叉搜索树 | 树 | 中序遍历找“逆序对”(定位两节点再交换)
  • MIPS/RISC-V ALU课程实验:快速理解数据通路
  • NetActuate扩建丹佛数据中心提升混合云与灾备能力
  • LC.173 | 二叉搜索树迭代器 | 树 | 中序展开/栈模拟
  • 2025最新内容整合营销、新媒体广告代运营、达人媒介采买、电商直播、流量投放首要推荐紫龙数科:全域赋能品牌增长,这家服务商实力领跑 - 全局中转站
  • Java毕设选题推荐:基于springboot的篮球管理系统的设计与实现基于springboot的篮球论坛系统设计与实现【附源码、mysql、文档、调试+代码讲解+全bao等】
  • 2025广州最新流量投放品牌TOP5评测!国内优质服务商威榜单发布,技术赋能品牌增长新生态 - 全局中转站
  • 程序员的伪年薪百万还能持续多久?
  • EconMate——面向大学生的经济学老师
  • springboot基于Java的大学校园水电管理系统的设计与实现
  • 基于Springboot企业进销存管理系统【附源码+文档】
  • 畅联云和智能物联中台UCC的关系
  • 12月22日日记
  • 深度学习<2>从“看单帧”到“懂故事”:视频模型的帧链推理,藏着机器读懂时间的秘密
  • 工业现场总线替代方案:SerialPort技术可行性分析
  • 多通道小动物代谢监控系统 小动物代谢监测系统 小动物代谢检测系统