[路飞]leetcode-54. 二叉搜索树的第k大节点

89 阅读1分钟

给定一棵二叉搜索树,请找出其中第 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
var inorder=function(root,list){
    if(root==null)return 
    inorder(root.left,list)
    list.push(root.val)
     inorder(root.right,list)
}
var kthLargest = function(root, k) {
    var list=[]
    inorder(root,list)
    console.log(list)
    return list[list.length-k]
};