面试题54. 二叉搜索树的第k大节点

给定一棵二叉搜索树,请找出其中第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)

发布了43 篇原创文章 · 获赞 1 · 访问量 1892

猜你喜欢

转载自blog.csdn.net/weixin_43455338/article/details/104666001