题目
![在这里插入图片描述](https://img-blog.csdnimg.cn/f80d6fb1ade2410ea046e96a916513b4.png)
Leetcode 501. 二叉搜索树中的众数
代码(首刷看解析)
class Solution {
public:
vector<int> res;
TreeNode* prev;
vector<int> findMode(TreeNode* root) {
int cur = 0, count = 0;
traverse(root, cur, count);
return res;
}
void traverse(TreeNode* root, int& cur, int& count) {
if(!root)
return;
traverse(root->left, cur, count);
if(!prev) {
prev = root;
cur = 1;
count = 1;
res.push_back(root->val);
}
else {
if(root->val == prev->val) {
cur++;
if(cur == count) {
res.push_back(root->val);
} else if(cur > count) {
res.clear();
count = cur;
res.push_back(root->val);
}
} else {
cur = 1;
if(cur == count) {
res.push_back(root->val);
}
}
}
prev = root;
traverse(root->right, cur, count);
}
};