Maximum Product of Splitted Binary Tree LeetCode solution in Java

1
class Solution {
2
public void findMaxSum(TreeNode node, long sum[]) {
3
if (node == null) return;
4

5
findMaxSum(node.left, sum);
6
findMaxSum(node.right, sum);
7

8
sum[0] += node.val;
9
}
10

11
public long findProd(TreeNode node, long sum[], long[] max) {
12
if (node == null) return 0;
13

14
long left = findProd(node.left, sum, max);
15
long right = findProd(node.right, sum, max);
16

17
long val = left + right + node.val;
18

19
max[0] = Math.max(max[0], val * (sum[0] - val));
20

21
return val;
22
}
23

24
public int maxProduct(TreeNode root) {
25

26
long max[] = new long[1];
27
long sum[] = new long[1];
28

29
findMaxSum(root, sum);
30

31
long n = findProd(root, sum, max);
32

33
return (int) (max[0] % ((int) 1e9 + 7));
34
}
35
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0