LeetCode——二叉搜索树的第K大的节点

题目描述

解题思路

  • 首先构建一个集合用来存储遍历的所有元素。
  • 使用DFS遍历二叉树,并将结果存到集合中。
  • 将集合转化为数组
  • 通过sort方法进行降序排序
  • 排好序的数组的下标为[k-1]的元素即为二叉搜索树的第K大的元素

实现代码

var kthLargest = function(root, k) {
    
    

    const set = new Set();
    const dfs = function(node) {
    
    
        if (node === null) {
    
    
            return;
        }

        set.add(node.val);
        dfs(node.left);
        dfs(node.right);
    }
    dfs(root);
    const arr = [...set];
    arr.sort((a,b) => {
    
    
        return b-a;
    });

    return arr[k-1];

};

猜你喜欢

转载自blog.csdn.net/sinat_41696687/article/details/115039619