Most Frequent Subtree Sum LeetCode solution in C++

1
class Solution {
2
private:
3
unordered_map<int, int> m;
4
int maxi = 0;
5
int f(TreeNode *root) {
6
if (!root) return 0;
7
int l = f(root->left);
8
int r = f(root->right);
9
int sum = root->val + l + r;
10
m[sum]++;
11
maxi = max(maxi, m[sum]);
12
return sum;
13
}
14

15
public:
16
vector<int> findFrequentTreeSum(TreeNode *root) {
17
vector<int> ans;
18
f(root);
19
for (auto &e : m) {
20
if (e.second == maxi) ans.push_back(e.first);
21
}
22
return ans;
23
}
24
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0