File tree 1 file changed +42
-0
lines changed
Algorithms/Most Frequent Subtree Sum
1 file changed +42
-0
lines changed Original file line number Diff line number Diff line change 5
5
6
6
7
7
``` 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
+ };
8
50
```
You can’t perform that action at this time.
0 commit comments