给定一棵二叉搜索树,请找出其中第k大的节点。
思路:中序遍历(二叉搜索树的中序遍历为从小到大排序)
输入: root = [5,3,6,2,4,null,null,1], k = 3
5
/ \
3 6
/ \
2 4
/
1
输出: 4
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def kthLargest(self, root: TreeNode, k: int) -> int:
temp = []
def helper(root):
if root.left:
helper(root.left)
temp.append(root.val)
if root.right:
helper(root.right)
helper(root)
return temp[-k]
来源:力扣(LeetCode)