Most Frequent Subtree Sum LeetCode solution in C++
1class Solution {2private:3unordered_map<int, int> m;4int maxi = 0;5int f(TreeNode *root) {6if (!root) return 0;7int l = f(root->left);8int r = f(root->right);9int sum = root->val + l + r;10m[sum]++;11maxi = max(maxi, m[sum]);12return sum;13}1415public:16vector<int> findFrequentTreeSum(TreeNode *root) {17vector<int> ans;18f(root);19for (auto &e : m) {20if (e.second == maxi) ans.push_back(e.first);21}22return ans;23}24};