题目:
给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k ****个最小元素(从 1 开始计数)。
算法:
中序遍历
func kthSmallest(root *TreeNode, k int) int {
ans := -1
num := 0
var dfs func(node *TreeNode)
dfs = func(node *TreeNode) {
if node == nil {
return
}
dfs(node.Left)
if num == k {
return
}
num ++
if num == k {
ans = node.Val
return
}
dfs(node.Right)
}
dfs(root)
return ans
}