二叉搜索樹的第k個結點
題目:給定一棵二叉搜索樹,請找出其中的第k小的TreeNode結點。
思路:
func KthNode(pRoot *TreeNode, k int) *TreeNode { if pRoot == nil { return nil } var s []*TreeNode p := pRoot cnt := 0 for len(s) != 0 || p != nil { for p != nil { s = append(s, p) p = p.Left } if len(s) != 0 { p = s[len(s)-1] s = s[:len(s)-1] cnt++ if cnt == k { return p } p = p.Right } } return nil }