leetcode-230. 二叉搜索树中第K小的元素
dfs
中序遍历即可
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
var num, ans int
var find bool
func kthSmallest(root *TreeNode, k int) int {
find = false
num, ans = 0, 0
dfs(root, k)
return ans
}
func dfs(root *TreeNode, k int) {
if find || root == nil {
return
}
if root.Left != nil {
dfs(root.Left, k)
}
num++
if num == k {
ans = root.Val
find = true
}
if root.Right != nil {
dfs(root.Right, k)
}
return
}
参考
230. 二叉搜索树中第K小的元素 - 力扣(Leetcode)
题解中有后续优化的解法
本文来自博客园,作者:吴丹阳-V,转载请注明原文链接:https://www.cnblogs.com/wudanyang/p/17035453.html