Go语言实现:【剑指offer】二叉搜索树的第k个的结点

该题目来源于牛客网《剑指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
}
原文地址:https://www.cnblogs.com/dubinyang/p/12099383.html