31 lines
553 B
Go
31 lines
553 B
Go
package top100liked
|
|
|
|
// https://leetcode.cn/problems/kth-smallest-element-in-a-bst/description/?envType=study-plan-v2&envId=top-100-liked
|
|
|
|
type TreeNode struct {
|
|
Val int
|
|
Left *TreeNode
|
|
Right *TreeNode
|
|
}
|
|
|
|
func kthSmallest(root *TreeNode, k int) int {
|
|
res, cnt := 0, 0
|
|
var helper func(node *TreeNode) bool
|
|
helper = func(node *TreeNode) bool {
|
|
if node == nil {
|
|
return false
|
|
}
|
|
if helper(node.Left) {
|
|
return true
|
|
}
|
|
cnt++
|
|
if cnt == k {
|
|
res = node.Val
|
|
return true
|
|
}
|
|
return helper(node.Right)
|
|
}
|
|
helper(root)
|
|
return res
|
|
}
|