230.kth-smallest-element-in-a-bst.go 435 B

12345678910111213141516171819202122232425
  1. /**
  2. * Definition for a binary tree node.
  3. * type TreeNode struct {
  4. * Val int
  5. * Left *TreeNode
  6. * Right *TreeNode
  7. * }
  8. */
  9. func kthSmallest(root *TreeNode, k int) (val int) {
  10. traversalKth(root, &k, &val)
  11. return
  12. }
  13. func traversalKth(node *TreeNode, k *int, val *int) {
  14. if node == nil {
  15. return
  16. }
  17. traversalKth(node.Left, k, val)
  18. (*k)--
  19. if *k == 0 {
  20. *val = node.Val
  21. return
  22. }
  23. traversalKth(node.Right, k, val)
  24. }