Skip to content

Commit 02b74a0

Browse files
authored
Update Count Nodes Equal to Average of Subtree.java
1 parent 220c742 commit 02b74a0

File tree

1 file changed

+17
-18
lines changed

1 file changed

+17
-18
lines changed

Medium/Count Nodes Equal to Average of Subtree.java

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -14,24 +14,23 @@
1414
* }
1515
*/
1616
class Solution {
17-
public int averageOfSubtree(TreeNode root) {
18-
int[] result = {0};
19-
helper(root, result);
20-
return result[0];
21-
}
22-
23-
private int[] helper(TreeNode root, int[] result) {
24-
if (root == null) {
25-
return new int[]{0, 0};
17+
public int averageOfSubtree(TreeNode root) {
18+
int[] result = {0};
19+
recurse(root, result);
20+
return result[0];
2621
}
27-
int[] left = helper(root.left, result);
28-
int[] right = helper(root.right, result);
29-
int sum = left[0] + right[0] + root.val;
30-
int numOfNodes = left[1] + right[1] + 1;
31-
int average = sum / numOfNodes;
32-
if (root.val == average) {
33-
result[0]++;
22+
23+
private int[] recurse(TreeNode root, int[] result) {
24+
if (root == null) {
25+
return new int[]{0, 0};
26+
}
27+
int[] left = recurse(root.left, result);
28+
int[] right = recurse(root.right, result);
29+
int sum = left[0] + right[0] + root.val;
30+
int count = left[1] + right[1] + 1;
31+
if (count != 0 && sum / count == root.val) {
32+
result[0]++;
33+
}
34+
return new int[]{sum, count};
3435
}
35-
return new int[]{sum, numOfNodes};
36-
}
3736
}

0 commit comments

Comments
 (0)