目录

LC 230. 二叉搜索树中第K小的元素 (opens new window) (opens new window)

中等

# 问题描述

给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 个最小元素(从 1 开始计数)。

示例 1:

示例1

输入:root = [3,1,4,null,2], k = 1
输出:1

示例 2:

示例2

输入:root = [5,3,6,2,4,null,null,1], k = 3
输出:3

提示:

  • 树中的节点数为 n
  • 1 <= k <= n <= 104
  • 0 <= Node.val <= 104

进阶:如果二叉搜索树经常被修改(插入/删除操作)并且你需要频繁地查找第 k 小的值,你将如何优化算法?

# 中序遍历

根据二叉搜索树的性质,对二叉搜索树进行中序遍历结果是从小到大排列的,因此只需执行一次中序遍历,搜索到第 kk 个即为答案。

  • 时间复杂度:O(n)O(n)
  • 空间复杂度:O(n)O(n)
上次更新: 2023/01/31 19:48:05

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 , 转载请注明出处!