当前位置: 首页 > news >正文

leetcode501-二叉搜索树中的众数

leetcode 501
在这里插入图片描述

思路

由于是二叉搜索树,那么我们知道它的特性:使用中序遍历得到的是从小到大排序的,所以我们利用这个规则,使用count来统计每次出现一个新的数的总个数,maxCount统计最大的个数值,result来存储二叉树中的众数,也就是要得到的结果值,pre用于统计前一个节点值
初始化定义好值以后,我们需要使用中序遍历,中间处理逻辑值
当pre还不存在的时候或者前一个节点跟后一个节点不相同时,说明出现了新的数字,要重新开始统计,更新count = 1, 更新节点为当前节点
如果数字相同的话,那么count++
然后比较maxCount和count的值,如果相等,说明当前值也是最大值,如果maxCount < count,那么说吗之前存在result中的数字都不是最大的数字,现在又出现了更大的数字,所以我们重新设置result为当前的数字
最终返回result

实现

var findMode = function (root) {
    let count = 0, maxCount = 0;
    let result = [];
    let pre = null;
    const deep = (root) => {
        if(!root) return;
        // 左
        deep(root.left)
        // 中
        if(!pre || pre.val !== root.val){
            count = 1;
            pre = root;
        }else{
            count ++
        }
        if(maxCount === count){
            result.push(root.val)
        }else if(maxCount < count){
            maxCount = count
            result = [root.val]
        }
        // 右
        deep(root.right)
    }
    deep(root)
    return result;
};

相关文章:

  • 烽火HG680-KA_海思HI3798MV310_安卓9.0_U盘强刷固件包及注意点说明
  • 整除分块 (+例题变形K-取模 2022年天梯赛(GPLT)上海理工大学校内选拔赛)
  • 最长公共子序列(动态规划法+优化)
  • NL2SQL 优化之 Schema 编写标准
  • 单词翻转(信息学奥赛一本通-1144)
  • AI视觉测试工具实战评测:以Applitools为例的技术解析与行业应用
  • CoreData 调试警告:多个 NSEntityDescriptions 声明冲突的解决
  • JSON 数据详解
  • 【再读】R1-Onevision通过跨模态形式化为复杂多模态推理任务提供了系统性解决方案
  • 盘库吧--搜索
  • 开源模型中的 Function Call 方案深度剖析
  • 【Linux系统】进程地址空间详解
  • 代码随想录算法训练营第五十九天| 图论05
  • 【MySQL】MySQL如何存储数据?
  • 计算机网络-1-1计算机网络体系结构
  • 清晰易懂的Java8安装教程
  • Deepseek API+Python测试用例一键生成与导出-V1.0.2【实现需求文档图片识别与用例生成自动化】
  • 可视化图解算法:判断链表中是否有环(环形链表)
  • JVM 垃圾回收器分类及其特点详解
  • TypeScript语言的计算机视觉
  • 一种声音·阿甘本|即将到来的中世纪;“新”与“旧”……
  • 一周文化讲座|“我的生命不过是温柔的疯狂”
  • 夜读丨母亲为燕子打开家门
  • 董军同德国国防部长举行会谈
  • 习近平向多哥新任领导人致贺电
  • 市场监管总局召开平台企业支持个体工商户发展座谈会