剑指 Offer 54. 二叉搜索树的第k大节点

72 阅读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

    let fn = []
    const help = (root)=> {
        if(!root){ return }
        help(root.left)
        fn.unshift(root.val)
        help(root.right)
    }
    help(root)
    return fn[k-1]
};

 /* 二叉搜索树中序遍历 升序    反过来是不就是降序*/
var kthLargest2 = function(root, k) {
    let fn = []
    const help = (root)=> {
        if(!root){ return }
        help(root.right)
        if(fn.length>=k){ return}
        fn.push(root.val)
        help(root.left)
    }
    help(root)
    return fn[k-1]