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

二叉树——二叉搜索树中的众数

二叉搜索树中的众数

链接
给你一个含重复值的二叉搜索树(BST)的根节点 root ,找出并返回 BST 中的所有 众数(即,出现频率最高的元素)。

如果树中有不止一个众数,可以按 任意顺序 返回。

假定 BST 满足如下定义:

结点左子树中所含节点的值 小于等于 当前节点的值
结点右子树中所含节点的值 大于等于 当前节点的值
左子树和右子树都是二叉搜索树

示例 1:

输入:root = [1,null,2,2]
输出:[2]
示例 2:

输入:root = [0]
输出:[0]

提示:

树中节点的数目在范围 [1, 104] 内
-105 <= Node.val <= 105

递归法

  • 返回值 void
  • 参数 treenode*
void seach(TreeNode* cur)
  • 终止
if(cur==NULL) return;
  • 单次递归
    全局变量
    int maxCount=0;//最大值频率int curCount=0;//当前频率vector<int> max;TreeNode* pre=NULL;
void seach(TreeNode* cur){if(cur==NULL) return;seach(cur->left);//左if(pre==NULL){ //第一个初始化curCount=1;}else if(pre->val==cur->val){curCount++;}else curCount=1;if(curCount==maxCount){max.push_back(cur->val);}if(curCount>maxCount){maxCount=curCount;max.clear(); //有新的最大频率,之前的要清除max.push_back(cur->val);}pre=cur;  seach(cur->right);

代码

class Solution {
public:int maxCount=0;int curCount=0;vector<int> max;TreeNode* pre=NULL;void seach(TreeNode* cur){if(cur==NULL) return;seach(cur->left);if(pre==NULL){curCount=1;}else if(pre->val==cur->val){curCount++;}else curCount=1;if(curCount==maxCount){max.push_back(cur->val);}if(curCount>maxCount){maxCount=curCount;max.clear();max.push_back(cur->val);}pre=cur;seach(cur->right);}vector<int> findMode(TreeNode* root) {seach(root);return max;}
};
http://www.lryc.cn/news/22379.html

相关文章:

  • 安装_配置参数解读_集群安装配置_启动选举_搭建启停脚本---大数据之ZooKeeper工作笔记004
  • RTMP的工作原理及优缺点
  • 【数据结构与算法】——第八章:排序
  • 在linux中web服务器的搭建与配置
  • 《Python机器学习》基础代码2
  • 如何基于MLServer构建Python机器学习服务
  • 9.1 IGMPv1实验
  • 软考高级系统分析师系列论文之十:论实时控制系统与企业信息系统的集成在通信业应用
  • NIO与零拷贝
  • 【PAT甲级题解记录】1151 LCA in a Binary Tree (30 分)
  • Android 获取手机语言环境 区分简体和繁体,香港,澳门,台湾繁体
  • 一文搞懂Python时间序列
  • GeoServer发布数据进阶
  • Docker离线部署
  • 《数据库系统概论》学习笔记——第七章 数据库设计
  • 【Datawhale图机器学习】半监督节点分类:标签传播和消息传递
  • 【分布式缓存学习篇】Redis数据结构
  • 【跟着ChatGPT学深度学习】ChatGPT带我入门NLP
  • RGB888与RGB565颜色
  • 常见的域名后缀有哪些?不同域名后缀的含义是什么?
  • LevelDB架构介绍以及读、写和压缩流程
  • 华为OD机试模拟题 用 C++ 实现 - 快递货车(2023.Q1)
  • 伺服三环控制深层原理解析
  • Cornerstone完整的基于 Web 的医学成像平台(一)
  • 老板让我在Linux中使用traceroute排查服务器网络问题,幸好我收藏了这篇文章!
  • 一文读懂【数据埋点】
  • Qt图片定时滚动播放器+透明过渡动画
  • 手把手带你做一套毕业设计-征程开启
  • 万字解析 Linux 中 CPU 利用率是如何算出来的?
  • 芯驰(E3-gateway)开发板环境搭建