python3 代码
class Solution(object):
ans = TreeNode(-1)
k = 0 # 必须将k存为全局变量,因为每轮递归回退时的k不是同一个k值
def dfs(self,root):
if not root:
return
self.dfs(root.left)
self.k -= 1
if not self.k:
self.ans = root
return # 找到第k小的节点之后,可以提前返回,不需要再往下遍历了
self.dfs(root.right)
def kthNode(self, root, k):
"""
:type root: TreeNode
:type k: int
:rtype: TreeNode
"""
self.k = k
self.dfs(root)
return self.ans