解题思路:根据二叉搜索树的性质,中序遍历后得到的数组会是升序的。
class Solution:
def KthNode(self , proot: TreeNode, k: int) -> int:
# write code here
#中序遍历得到升序数组
res = []
def middele_travel(proot):
if not proot:
return None
middele_travel(proot.left)
res.append(proot.val)
middele_travel(proot.right)
middele_travel(proot)
#如果根节点不存在或者k值不在数组长度范围内,则返回-1;否则返回数组中索引为k-1的元素
if not proot or len(res) < k or k <= 0:
return -1
else:
return res[k-1]