剑指Offer——二叉搜索树的第K大的节点(JS实现)

简介: 剑指Offer——二叉搜索树的第K大的节点(JS实现)

题目描述

image.png

解题思路

  • 首先构建一个集合用来存储遍历的所有元素。
  • 使用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];
};
相关文章
|
7月前
|
前端开发 JavaScript 区块链
连接区块链节点的 JavaScript 库 web3.js
连接区块链节点的 JavaScript 库 web3.js
73 2
|
7月前
|
JavaScript 前端开发
用JavaScript正则表达式匹配对应字符串高亮显示,并过滤掉空格、<、>等HTML节点符号
用JavaScript正则表达式匹配对应字符串高亮显示,并过滤掉空格、<、>等HTML节点符号
|
7月前
|
JavaScript
Turndown 源码分析:五、节点相关`root-node.js`和`node.js`
Turndown 源码分析:五、节点相关`root-node.js`和`node.js`
75 0
|
7月前
|
JavaScript
js添加 删除 替换 插入节点所用的方法
js添加 删除 替换 插入节点所用的方法
38 0
|
3月前
|
存储 JSON JavaScript
「offer来了」保姆级巩固你的js知识体系(4.0w字)
该文章提供了JavaScript知识体系的全面复习资料,覆盖了从基础语法到高级特性如闭包、原型链、异步编程等多个方面,并通过大量的面试题和实例代码帮助巩固理解。
「offer来了」保姆级巩固你的js知识体系(4.0w字)
|
3月前
|
JavaScript 前端开发 索引
JavaScript HTML DOM 节点列表
JavaScript HTML DOM 节点列表
22 5
|
3月前
|
JavaScript 前端开发
JavaScript HTML DOM 元素 (节点)
JavaScript HTML DOM 元素 (节点)
28 2
|
7月前
|
前端开发 JavaScript 区块链
连接区块链节点的 JavaScript 库 web3.js
连接区块链节点的 JavaScript 库 web3.js
|
5月前
|
JavaScript
js 解析和操作树 —— 获取树的深度、提取并统计树的所有的节点和叶子节点、添加节点、修改节点、删除节点
js 解析和操作树 —— 获取树的深度、提取并统计树的所有的节点和叶子节点、添加节点、修改节点、删除节点
144 0
|
6月前
|
JavaScript BI
技术笔记:JS获取子节点、父节点和兄弟节点的方法实例总结
技术笔记:JS获取子节点、父节点和兄弟节点的方法实例总结
100 0