news 2026/4/18 9:56:36

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/4/17 18:43:06

堆排序--自学笔记

堆排序 学习目标 1.堆结构 2.堆排序思想 3.代码实现 4.复杂度分析 1.堆结构 定义 符合以下两个条件之一的完全二叉树 根节点的值 > 子节点的值&#xff0c;称为最大堆&#xff0c;或大顶堆根节点的值 < 子节点的值&#xff0c;称为最小堆&#xff0c;或小顶堆 …

作者头像 李华
网站建设 2026/4/8 5:25:08

8款AI论文生成工具测评,改写与降重功能全面覆盖

在人工智能论文辅助工具的激烈竞争中&#xff0c;如何挑选高效实用的平台成为用户关注焦点。通过对八款主流AI写作平台的横向评测&#xff0c;从文本降重、AIGC检测规避到学术论文生成等核心功能进行多维度分析&#xff0c;本次排名综合了实际测试结果与真实用户评价数据&#…

作者头像 李华
网站建设 2026/4/17 18:46:57

STM32工程中Keil生成Bin文件超详细版说明

STM32工程中Keil生成Bin文件&#xff1a;从原理到实战的完整指南你有没有遇到过这样的场景&#xff1f;代码编译通过&#xff0c;调试也没问题&#xff0c;但当你把固件交给生产部门或准备做OTA升级时&#xff0c;对方却说&#xff1a;“我们需要的是.bin文件&#xff0c;不是.…

作者头像 李华
网站建设 2026/4/18 9:45:36

springboot基于Java的大学校园水电管理系统的设计与实现

前言 基于Java的大学校园水电管理系统通过信息化手段提高了水电管理的效率和准确性&#xff0c;优化了资源配置&#xff0c;提升了服务质量。未来&#xff0c;可以进一步完善系统的功能&#xff0c;如增加智能预警功能、优化用户界面等&#xff0c;以更好地满足用户需求。同时&…

作者头像 李华
网站建设 2026/4/17 11:53:25

HardFault_Handler问题定位在PLC系统中的应用与优化

硬故障现场还原&#xff1a;如何让PLC在崩溃后“说出”真相你有没有遇到过这样的场景&#xff1f;一台运行在工厂产线上的PLC&#xff0c;突然无故停机。现场操作员重启设备后系统恢复正常&#xff0c;但几天后同样的问题再次出现——没有报警代码、没有日志记录、调试器也无法…

作者头像 李华