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

85 阅读1分钟

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

递归处理,先从右边开始 然后就是根节点,最后才是左边节点,每层嵌套都是先右再根,再左,这样输入了都是按大往小顺序排列。

代码实现

const kthLargest = (root, k) => {
    // 遍历顺序(访问右节点在前):右-根-左
    const res = [];
    const unInOrder = node => {
        if (!node) return;
        unInOrder(node.right);
        res.push(node.val);
        unInOrder(node.left);
    };
    unInOrder(root);
    // 得到从大到小排序的数组
    return res[k - 1];
};

流程图分析 二叉树.jpg