栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

leetcode 508. 出现次数最多的子树元素和C++

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

leetcode 508. 出现次数最多的子树元素和C++

目录
  • 链接:
  • 描述,示例和链接:
  • 代码:
  • 代码分析:

链接:

链接: 出现次数最多的子树元素和

描述,示例和链接:


代码:
class Solution {
    int maxret = 0;
    unordered_map mp;

    int dfs(TreeNode* root)
    {
        if(root==nullptr) return 0;
        int now = root->val+dfs(root->left)+dfs(root->right);
        maxret = max(maxret,++mp[now]);
        return now;
    }

public:
    vector findFrequentTreeSum(TreeNode* root) {
        dfs(root);
        vector ret;

        for(auto &[a,b] : mp)
        {
            if(b == maxret)
                ret.emplace_back(a);
        }
        return ret;
    }
};
代码分析:

1.二叉树的题一般都是 遍历题,要根据题目所求然后寻找最合适的遍历方式
2.每个节点的值是:左子树的值+右子树的值+本身
即:
叶子节点时:0+0+root->val
叶子节点上一层:左节点+右节点+root->val
再上一层:左子树的值+右子树的值+本身
左,右,本身-----后序遍历

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/983308.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号