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/10 12:30:59

LC.173 | 二叉搜索树迭代器 | 树 | 中序展开/栈模拟

输入: BST 根节点 root,构造 BSTIterator。 要求: 实现一个按中序遍历输出 BST 的迭代器: next():返回下一个最小值hasNext():是否还有下一个元素 输出: 按题意实现类方法(next/hasN…

作者头像 李华
网站建设 2026/6/9 23:52:51

8个顶尖AI论文写作平台功能对比,支持降重与改写

AI论文工具的选择需结合降重、降AIGC率及写作需求进行综合评估。根据实测数据与用户反馈,主流工具在效率、准确性和易用性方面表现各异,例如部分平台擅长语义重构降低重复率,而另一些则通过算法优化减少AI生成痕迹。实际应用中需优先匹配核心…

作者头像 李华
网站建设 2026/6/10 12:20:34

高效论文生成工具盘点,涵盖AI降重与自动写作功能

AI论文工具的选择需要结合降重、降AIGC率、写作效率等核心需求。通过实测数据和用户反馈综合评估,目前主流的8款工具中,排名靠前的平台在准确性、易用性和处理速度上表现突出,尤其擅长智能改写、降低AI生成痕迹以及辅助论文创作,能…

作者头像 李华
网站建设 2026/6/4 19:29:30

视听共振,心灵同频,《鸿蒙星光盛典》照亮“在一起”的心路

这是一个追光人共同点亮的夜晚,也是一场无关距离、只关乎信念的奔赴——当曲面屏上流光初绽,当第一声小号划破沉静,深圳龙岗大运体育中心场馆内,四万盏灯球应声而亮,汇成澎湃的星海。每一盏灯,都是一份跨越…

作者头像 李华