给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 个最小元素(从 1 开始计数)。
//在中序遍历的过程不断减小k值,知道其为0,那么该值即为第k小的数
func kthSmallest(root *TreeNode, k int) int {
var res int
isKth(root, &k, &res)
return res
}
func isKth(root *TreeNode, k *int, res *int) {
if root == nil {
return
}
isKth(root.Left, k, res)
*k--
if *k == 0 {
*res = root.Val
return
}
isKth(root.Right, k, res)
}