/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func kthSmallest(root *TreeNode, k int) int {
if root==nil{
return 0
}
res,idx:=0,0
find:=false
var dfs func(node *TreeNode)
dfs=func(node *TreeNode){
if node ==nil{
return
}
dfs(node.Left)
idx++
if idx==k{
res=node.Val
find=true
}
if find{
return
}
dfs(node.Right)
}
dfs(root)
return res
}