Leetcode501.Find Mode in Binary Search Tree二叉搜尋樹中的眾數
阿新 • • 發佈:2018-11-06
給定一個有相同值的二叉搜尋樹(BST),找出 BST 中的所有眾數(出現頻率最高的元素)。
假定 BST 有如下定義:
- 結點左子樹中所含結點的值小於等於當前結點的值
- 結點右子樹中所含結點的值大於等於當前結點的值
- 左子樹和右子樹都是二叉搜尋樹
例如:
給定 BST [1,null,2,2],
1 \ 2 / 2
返回[2].
提示:如果眾數超過1個,不需考慮輸出順序
class Solution { public: map<int, int> check; int MAX = 0; vector<int> findMode(TreeNode* root) { Fun(root); map<int, int>:: iterator itr; vector<int> res; for(itr = check.begin(); itr != check.end(); itr++) { if(itr ->second == MAX) { res.push_back(itr ->first); } } return res; } void Fun(TreeNode* root) { if(root == NULL) return ; check[root ->val]++; MAX = max(MAX, check[root ->val]); Fun(root ->left); Fun(root ->right); } };