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

【代码随想录day 18】 力扣 501.二叉搜索树中的众数

视频讲解:https://www.bilibili.com/video/BV1fD4y117gp/?vd_source=a935eaede74a204ec74fd041b917810c
文档讲解:https://programmercarl.com/0501.%E4%BA%8C%E5%8F%89%E6%90%9C%E7%B4%A2%E6%A0%91%E4%B8%AD%E7%9A%84%E4%BC%97%E6%95%B0.html#%E6%80%9D%E8%B7%AF
力扣题目:https://leetcode.cn/problems/find-mode-in-binary-search-tree/

这道题的主要思路如下:

  1. 双指针遍历二叉树,在遍历过程中对遍历的数进行如下操作。
  2. 如果pre指针等于cur指针,count++,如果不相等,count重新计数,pre指针始终跟紧cur指针。
  3. 如果count大于maxcount,更新maxcount,并且把存入数组的数弹出放入新的。
class Solution {
public:TreeNode *pre=NULL;int count=0;int maxcount=0;vector<int> result;void travesal(TreeNode *cur){//判断终止条件if(cur == NULL) return;//开始递归//左travesal(cur->left);//中//第一次遍历,pre还没跟上cur,count计数为1if(pre == NULL) count=1;//pre跟上了cur,即pre有值,且等于cur的值,count计数++else if(pre->val==cur->val) count++;//pre存在且不相等与cur,重新计数countelse count=1;//pre跟上curpre=cur;//如果count等于maxcount,即众数不止一个,存入数组中if(count == maxcount)  result.push_back(cur->val);//如果count大于最大count,更新maxcountif(count>maxcount) {maxcount=count;//说明有其他数的频率大于这个数,弹出并放入新的数result.clear();result.push_back(cur->val);}//右travesal(cur->right);return;}vector<int> findMode(TreeNode* root) {//if(!root) return 0;travesal(root);return result;}
};
http://www.xdnf.cn/news/17558.html

相关文章:

  • 力扣热题100------279.完全平方数
  • 吉利汽车7月销量超23.7万辆 同比增长58%
  • 【嵌入式C语言】
  • 【10】微网优联——微网优联 嵌入式技术一面,校招,面试问答记录
  • 数据结构:串、数组与广义表
  • IP分片(IP Fragmentation)
  • 力扣109:有序链表转换二叉搜索树
  • docter的使用、vscode(cursor)和docker的连接,详细分析说明
  • 【3D Gen 入坑(1)】Hunyuan3D-Paint 2.1 安装 `custom_rasterizer` 报错完整排查
  • 面试题-----RabbitMQ
  • MySQL的索引(索引的数据结构-B+树索引):
  • 嵌入式Linnux学习 -- 软件编程2
  • 【已解决】报错:WARNING: pip is configured with locations that require TLS/SSL
  • STM32——system文件夹
  • 【ros-humble】4.C++写法巡场海龟(服务通讯)
  • Spring Boot 中 @Transactional 解析
  • [Oracle] UNPIVOT 列转行
  • Linux kernel network stack, some good article
  • Day 37:早停策略和模型权重的保存
  • 《番外:Veda的备份,在某个未联网的旧服务器中苏醒……》
  • Mybatis学习之缓存(九)
  • 从零开始的云计算生活——第四十一天,勇攀高峰,Kubernetes模块之单Master集群部署
  • Seata
  • vue+django 大模型心理学智能诊断评测系统干预治疗辅助系统、智慧心理医疗、带知识图谱
  • EXISTS 替代 IN 的性能优化技巧
  • 前端灰度发布浅析
  • 【C++语法】输出的设置 iomanip 与 std::ios 中的流操纵符
  • 【stm32】EXTI外部中断
  • IoT/实现和分析 NB-IoT+DTLS+PSK 接入华为云物联网平台IoTDA过程,总结避坑攻略
  • 运维学习Day21——LAMP/LNMP 最佳实践