【leetcode】剑指 Offer 54. 二叉搜索树的第k大节点(js实现)

1. 题目

剑指 Offer 54. 二叉搜索树的第k大节点
【leetcode】剑指 Offer 54. 二叉搜索树的第k大节点(js实现)_第1张图片

2. 思路

二叉搜索树的特点:中序遍历的结果是各节点的值升序(从小到大)的结果
【leetcode】剑指 Offer 54. 二叉搜索树的第k大节点(js实现)_第2张图片

3. 代码实现

/**
 * Definition for a binary tree node.
 * function TreeNode(val) {
 *     this.val = val;
 *     this.left = this.right = null;
 * }
 */
/**
 * @param {TreeNode} root
 * @param {number} k
 * @return {number}
 */
var kthLargest = function(root, k) {
    let res = []
    // 中序遍历
    function inOrderTraverse (node) {
        if (node !== null) {
            inOrderTraverse(node.left)
            res.push(node.val)
            inOrderTraverse(node.right)
        }
    }
    inOrderTraverse(root)
    // 从大到小排序
    res.reverse()
    // console.log(res)
    return res[k - 1]
};

4. 参考

JavaScript版解题思路

你可能感兴趣的:(javascript,leetcode,开发语言)