var findFrequentTreeSum = function (root) {
let mapping = {};
let res = [];
// 获取每个节点的子元素和
// 返回值:该元素及所有子节点的和
function dfs(root) {
if (!root) return 0;
// 后序位置
let left = dfs(root.left);
let right = dfs(root.right);
let sum = root.val + left + right;
mapping[sum] = (mapping[sum] || 0) + 1;
return sum;
}
dfs(root);
let maxCount = Math.max(...Object.values(mapping));
let keys = Object.keys(mapping);
for (let k of keys) {
if (mapping[k] === maxCount) {
res.push(parseInt(k));
}
}
return res;
};