https://leetcode.com/problems/find-mode-in-binary-search-tree/
1. Use BST:
//24 ms 20.8 MB/*** 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) {vector<int> result;int val_ = 0;int count_ = 0;int max_count_ = 0;inorder(root, result, val_, count_, max_count_);return result;}//the mode numbers in the binary tree are all connectedvoid inorder(TreeNode* root, vector<int>& result, int& val_, int& count_, int& max_count_){if(!root) return;inorder(root->left, result, val_, count_, max_count_);if (count_ > 0 && root->val == val_) {count_++;} else {val_ = root->val;count_ = 1;}if (count_ > max_count_) {max_count_ = count_;result.clear();}if (count_ == max_count_)result.push_back(root->val);inorder(root->right, result, val_, count_, max_count_);}};
