LeetCode 501 二叉搜索树中的众数
程序员文章站
2022-05-20 16:13:28
...
LeetCode 501 二叉搜索树中的众数
给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数(出现频率最高的元素)。
假定 BST 有如下定义:
结点左子树中所含结点的值小于等于当前结点的值
结点右子树中所含结点的值大于等于当前结点的值
左子树和右子树都是二叉搜索树
例如:
给定 BST [1,null,2,2],
1
\
2
/
2
返回[2].
简单BFS,统计每个结点出现的次数即可,AC代码如下:
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
vector<int> findMode(TreeNode* root) {
map<int,int>m;
vector<int>v;
int mx=0;
queue<TreeNode*>q;
q.push(root);
while(!q.empty()){
TreeNode* t=q.front();
q.pop();
if(t){
m[t->val]++;
if(t->left) q.push(t->left);
if(t->right) q.push(t->right);
}
}
for(auto i:m) mx=max(mx,i.second);
for(auto i:m) if(i.second==mx) v.push_back(i.first);
return v;
}
};
推荐阅读
-
LeetCode 426. 将二叉搜索树转化为排序的双向链表(BST中序循环遍历)
-
leetcode算法练习——不同的二叉搜索树
-
leetcode算法练习——不同的二叉搜索树
-
求二叉树中两个节点的最近公共祖先(三叉链,搜索树,普通二叉树)
-
leetcode 235. 二叉搜索树的最近公共祖先
-
【Leetcode刷题篇】leetcode235 二叉搜索树的最近公共祖先
-
LeetCode 235--二叉搜索树的最近公共祖先 ( Lowest Common Ancestor of a Binary Search Tree ) ( C语言版 )
-
Leetcode 1305:两棵二叉搜索树中的所有元素(超详细的解法!!!)
-
Leetcode 230.二叉搜索树中第k小的元素
-
LeetCode刷题实战96:不同的二叉搜索树