题目:
给定一棵二叉搜索树,请找出其中第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 ≤ 二叉搜索树元素个数
题目的理解:
遍历二叉树,获取到所有的值后,倒序排列,获取k-1的值。
python实现
# 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:
nums = list()
self.recursion(nums, root)
nums.sort(reverse=True)
return nums[k-1]
def recursion(self, nums: list, node: TreeNode):
if node is None:
return
nums.append(node.val)
if node.left is not None:
self.recursion(nums, node.left)
if node.right is not None:
self.recursion(nums, node.right)
提交
成功// END 忙碌一天,仅仅出门寄个快递和买个菜,感觉经历千山万水
网友评论