该题目来源于牛客网《剑指offer》专题。
给定一棵二叉搜索树,请找出其中的第k小的结点。例如,(5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。
Go语言实现:
type TreeNode struct {
Val int
Left *TreeNode
Right *TreeNode
}
var index = 0
func kNode(root *TreeNode, k int) *TreeNode {
if root != nil {
node := kNode(root.Left, k)
if node != nil {
return node
}
index++
if index == k {
return root
}
node = kNode(root.Right, k)
if node != nil {
return node
}
}
return nil
}
本文探讨了如何在二叉搜索树中寻找第K小的结点,使用Go语言实现。通过递归遍历左子树、根节点和右子树,实现了有效的定位。示例中给出了具体的代码实现。

452

被折叠的 条评论
为什么被折叠?



