Question
Find time and space complextity of the following code. public class MaxPathSumBinaryTree { public int maxPathSum(TreeNode root) { //wrap a global variable into an array
Find time and space complextity of the following code.
public class MaxPathSumBinaryTree {
public int maxPathSum(TreeNode root) {
//wrap a global variable into an array so that we can change the value//
int[] max = new int[] {Integer.MIN_VALUE};
maxSumHelper(root, max);
return max[0];
}
private int maxSumHelper(TreeNode root, int[] max) {
if (root == null) {
return 0;
}
int left = maxSumHelper(root.left, max);
int right = maxSumHelper(root.right, max);
//when root node has both left and right child, we need to update the max path sum//
if (root.left != null && root.right != null) {
max[0] = Math.max(max[0], left + right + root.key);
return Math.max(left, right) +root.key;
}
return root.left == null?right + root.key : left + root.key;
}
}
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started