给定一棵二叉搜索树,请找出其中第k大的节点。
示例 1:
输入: root = [3,1,4,null,2], k = 1
3
/
1 4
2
输出: 4
示例 2:
输入: root = [5,3,6,2,4,null,null,1], k = 3
5
/
3 6
/
2 4
/
1
输出: 4
限制:
1 ≤ k ≤ 二叉搜索树元素个数
本解法使用的是不常见的中序遍历,先右后左
1 class Solution: 2 def kthLargest(self, root: TreeNode, k: int) -> int: 3 def dfs(root): 4 if not root: 5 return 6 dfs(root.right) 7 if self.k == 0: 8 return 9 self.k -= 1 10 if self.k == 0: 11 self.res = root.val 12 dfs(root.left) 13 self.k = k 14 dfs(root) 15 return self.res
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/er-cha-sou-suo-shu-de-di-kda-jie-dian-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。