ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【树】508. 出现次数最多的子树元素和

2020-05-03 13:03:44  阅读:240  来源: 互联网

标签:子树 TreeNode int res dfs 次数 right 508 root


题目:

 

 

 

解决:

dfs遍历整个树 然后通过一个map记录对应的值,当遍历完成之后 遍历一遍max即可。

 1 /**
 2  * Definition for a binary tree node.
 3  * struct TreeNode {
 4  *     int val;
 5  *     TreeNode *left;
 6  *     TreeNode *right;
 7  *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 8  * };
 9  */
10 class Solution {
11 public:
12 
13     int dfs(TreeNode *root)
14     {
15         if (NULL == root)
16         {
17             return 0;
18         }
19 
20         // 计算左右
21         int left = dfs(root->left);
22         int right = dfs(root->right);
23 
24         // 该节点值
25         int sum = root->val + left + right;
26 
27         // 添加到map当中
28         Map[sum]++;
29 
30         return sum;
31     }
32 
33     vector<int> findFrequentTreeSum(TreeNode* root) 
34     {
35         if (NULL == root)
36         {
37             return {};
38         }
39 
40         dfs(root);
41 
42         vector<int> res;
43         int max_count = 0;
44 
45         // 遍历map
46         for (auto c: Map)
47         {
48             if (c.second == max_count)
49             {
50                 res.push_back(c.first);
51             }
52             else if (c.second > max_count)
53             {
54                 res.clear();
55                 res.push_back(c.first);
56                 max_count = c.second;
57             }
58         }
59 
60         return res;
61     }
62     private:
63         map<int, int> Map; // 第一个为当前值, 第二个为频率值
64 };

 

标签:子树,TreeNode,int,res,dfs,次数,right,508,root
来源: https://www.cnblogs.com/ocpc/p/12821546.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有