Subtree Max Avg
Subtree with Minimum Sum (LC.596)
Example
+ 1
/ \
-5 2
/ \ / \
0 2 -4 -5Analysis
Code
private TreeNode minSubtree = null;
private int minSum = Integer.MAX_VALUE;
/**
* @param root the root of binary tree
* @return the root of the minimum subtree
*/
public TreeNode findSubtree(TreeNode root) {
subtreeSum(root);
return minSubtree;
}
private int subtreeSum(TreeNode root) {
// base case
if (root == null) {
return 0;
}
// divide & conquer
int currentSum = root.val + subtreeSum(root.left) + subtreeSum(root.right);
// update global value
if (currentSum < minSum) {
minSum = currentSum;
minSubtree = root;
}
return currentSum;
}Subtree with Maximum Average (LC.597)
Example
Analysis
Code
Last updated