C++ | Leetcode C++题解之第501题二叉搜索树中的众数
题目:
题解:
class Solution {
public:int base, count, maxCount;vector<int> answer;void update(int x) {if (x == base) {++count;} else {count = 1;base = x;}if (count == maxCount) {answer.push_back(base);}if (count > maxCount) {maxCount = count;answer = vector<int> {base};}}vector<int> findMode(TreeNode* root) {TreeNode *cur = root, *pre = nullptr;while (cur) {if (!cur->left) {update(cur->val);cur = cur->right;continue;}pre = cur->left;while (pre->right && pre->right != cur) {pre = pre->right;}if (!pre->right) {pre->right = cur;cur = cur->left;} else {pre->right = nullptr;update(cur->val);cur = cur->right;}}return answer;}
};