给定一个二叉搜索树的根节点
root
,和一个整数k
,请你设计一个算法查找其中第k
****个最小元素(从 1 开始计数)。
运用二叉搜索树中序遍历的特性。结果数组从小到大排列。
- 中序遍历二叉树
- 结果数组取第
k-1
项
function kthSmallest(root: TreeNode | null, k: number): number {
const arr: number[] = []
// 中序遍历 深度优先
function dfs(root: TreeNode | null) {
if (root === null) return
root.left && dfs(root.left)
arr.push(root.val)
root.right && dfs(root.right)
}
dfs(root)
return arr[k - 1]
}