网站制作公司兴田德润简介,福州公司做网站,优化网站的步骤,建设工程合同属于承揽合同吗给出二叉树的根#xff0c;找出出现次数最多的子树元素和。一个结点的子树元素和定义为以该结点为根的二叉树上所有结点的元素之和#xff08;包括结点本身#xff09;。然后求出出现次数最多的子树元素和。如果有多个元素出现的次数相同#xff0c;返回所有出现次数最多的…给出二叉树的根找出出现次数最多的子树元素和。一个结点的子树元素和定义为以该结点为根的二叉树上所有结点的元素之和包括结点本身。然后求出出现次数最多的子树元素和。如果有多个元素出现的次数相同返回所有出现次数最多的元素不限顺序。 示例 1 输入: 5/ \
2 -3返回 [2, -3, 4]所有的值均只出现一次以任意顺序返回所有值。
示例 2 输入: 5/ \
2 -5返回 [2]只有 2 出现两次-5 只出现 1 次。
class Solution {
public:vectorint findFrequentTreeSum(TreeNode* root) {vectorint res;unordered_mapint, int m;int cnt 0;postorder(root, m, cnt, res);return res;}int postorder(TreeNode* node, unordered_mapint, int m, int cnt, vectorint res) {if (!node) return 0;int left postorder(node-left, m, cnt, res);int right postorder(node-right, m, cnt, res);int sum left right node-val;m[sum];if (m[sum] cnt) {if (m[sum] cnt) res.clear();res.push_back(sum);cnt m[sum];}return sum;}
};