题解 | #二叉搜索树的第k个节点#
二叉搜索树的第k个节点
https://www.nowcoder.com/practice/57aa0bab91884a10b5136ca2c087f8ff
# class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param proot TreeNode类 # @param k int整型 # @return int整型 # class Solution: # 先定义返回和当前访问数量 def __init__(self): # 记录结果 self.res = None # 记录访问数量 self.count = 0 def zhongxubianli(self,proot,k): # 如果当前结点为空或者count大于k则返回 if proot == None or self.count > k: return None # 中序遍历 self.zhongxubianli(proot.left,k) self.count = self.count + 1 if self.count == k: self.res = proot self.zhongxubianli(proot.right,k) def KthNode(self , proot: TreeNode, k: int) -> int: # write code here self.zhongxubianli(proot,k) if self.res != None: return self.res.val else: return -1