题目描述

给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。
说明:本题目包含复杂数据结构TreeNode,点此查看相关信息

  1. # -*- coding:utf-8 -*-
  2. # class TreeNode:
  3. # def __init__(self, x):
  4. # self.val = x
  5. # self.left = None
  6. # self.right = None
  7. class Solution:
  8. # 返回对应节点TreeNode
  9. def KthNode(self, pRoot, k):
  10. # write code here
  11. if not pRoot:
  12. return None
  13. ret = []
  14. def inOrder(root):
  15. if not root:
  16. return None
  17. inOrder(root.left)
  18. ret.append(root)
  19. inOrder(root.right)
  20. return ret
  21. result = inOrder(pRoot)
  22. if 0<k<=len(result):
  23. return result[k-1]
  24. else:
  25. return None