lc-go/solutions/2/q230/solution.go
2026-01-07 18:04:39 +09:00

35 lines
531 B
Go

package q230
type TreeNode struct {
Val int
Left *TreeNode
Right *TreeNode
}
func findKth(node *TreeNode, k, current int) (int, *int) {
if node == nil {
return current, nil
}
current, ret := findKth(node.Left, k, current)
if ret != nil {
return current, ret
}
current += 1
if current == k {
return current, &node.Val
}
return findKth(node.Right, k, current)
}
func kthSmallest(root *TreeNode, k int) int {
_, kth := findKth(root, k, 0)
if kth == nil {
return 0
}
return *kth
}
var _ = kthSmallest