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

LeetCode501 二叉搜索树中的众数

前言

题目: 501. 二叉搜索树中的众数
文档: 代码随想录——二叉搜索树中的众数
编程语言: C++
解题状态: 不会…

思路

利用二叉搜索树性质的同时再加上双指针法。

代码

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
private:int maxCount = 0;int count = 0;TreeNode* pre = NULL;vector<int> result;void searchBST(TreeNode* cur) {if (!cur) return;searchBST(root -> left);if (pre == NULL) {count = 1;} else if (pre -> val == cur -> val) {count++;} else {count = 1;}pre = cur;if (count == maxCount) {result.push_back(cur ->val);}if (count > maxCount) {maxCount = count;result.clear();result.push_back(cur -> val);}searchBST(root -> right);return;}public:vector<int> findMode(TreeNode* root) {count = 0;maxCount = 0;pre = NULL;result.clear();searchBST(root);return result;}
};

http://www.mrgr.cn/news/1907.html

相关文章:

  • 第5节:Elasticsearch核心概念
  • 快速排序(Java实现)
  • 阿里声音项目Qwen2-Audio的部署安装,在服务器Ubuntu22.04系统——点动科技
  • git 使用
  • 海康VisionMaster使用学习笔记10-VM流程操作
  • [Qt][Qt 多线程][上]详细讲解
  • 手机回合制策略游戏推荐:《文明6》手机版游戏分享
  • 搭建内网开发环境(三)|基于nexus搭建docker私服
  • 实现异形(拱形)轮播图
  • Processing中库和导出PDF内容
  • 【Android 笔记】Android APK编译打包流程
  • React前端面试每日一试 8.什么是React Portals?
  • Git基础知识
  • 【Linux】线程安全的单例模式 STL和智能指针的线程安全问题 其他常见的各种锁 读者写者模型(线程的周边话题)
  • go语言协程之间的同步
  • 解决k8s进入dashboard页面,浏览器提示连接不是私密链接的问题
  • 图像处理之 Gamma LUT
  • Ubuntu虚拟机服务器的搭建
  • qt-11基本对话框(消息框)
  • Python基础知识学习总结(五)