Skip to content

Commit b7575d9

Browse files
authored
Update README.md
1 parent d95da48 commit b7575d9

File tree

1 file changed

+42
-0
lines changed
  • Algorithms/Most Frequent Subtree Sum

1 file changed

+42
-0
lines changed

Algorithms/Most Frequent Subtree Sum/README.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,46 @@
55

66

77
```js
8+
/**
9+
* Definition for a binary tree node.
10+
* function TreeNode(val) {
11+
* this.val = val;
12+
* this.left = this.right = null;
13+
* }
14+
*/
15+
/**
16+
* @param {TreeNode} root
17+
* @return {number[]}
18+
*/
19+
function getSum (root, map) {
20+
if (root === null) return 0;
21+
var left = getSum(root.left, map);
22+
var right = getSum(root.right, map);
23+
var sum = root.val + left + right;
24+
25+
map[sum] === undefined ? map[sum] = 1 : map[sum]++;
26+
return sum;
27+
}
28+
var findFrequentTreeSum = function(root) {
29+
if (root === null) return [];
30+
var valueCountMap = {};
31+
var max = -1;
32+
var ret = [];
33+
var key;
34+
35+
getSum(root, valueCountMap);
36+
for (key in valueCountMap) {
37+
if (valueCountMap[key] > max) {
38+
max = valueCountMap[key];
39+
}
40+
}
41+
42+
for (key in valueCountMap) {
43+
if (valueCountMap[key] === max) {
44+
ret.push(parseInt(key));
45+
}
46+
}
47+
48+
return ret;
49+
};
850
```

0 commit comments

Comments
 (0)