Leetcode 508. Most Frequent Subtree Sum

https://leetcode.com/problems/most-frequent-subtree-sum/description/


class Solution {
public:
    
    int dfs(TreeNode* root, unordered_map< int, int >& cnter ) {
        if (!root) return 0;
        // cnter[ root->val ] ++;
        int v = root->val;
        v += dfs(root->left, cnter);
        v += dfs(root->right, cnter);
        cnter[v] ++;
        return v;
    }
    
    vector<int> findFrequentTreeSum(TreeNode* root) {
        vector<int> ret;
        if (!root) return ret;
        unordered_map<int, int> cnter;
        dfs(root, cnter);

        int mx = 0;
        
        for (auto v: cnter) {
            mx = max(mx, v.second);
        }

        for (auto v:cnter) {
            if (v.second == mx) {
                ret.push_back( v.first );
            }
        }

        return ret;
    }
};


猜你喜欢

转载自blog.csdn.net/u011026968/article/details/80920939
今日推荐