Untitled
unknown
plain_text
a year ago
1.2 kB
6
Indexable
public class BalancedBinaryTreeOptimized {
public boolean isBalanced(TreeNode root) {
return height(root) != -1;
}
// Helper method to calculate height and check balance
private int height(TreeNode node) {
if (node == null) return 0;
int leftHeight = height(node.left);
if (leftHeight == -1) return -1; // Left subtree is not balanced
int rightHeight = height(node.right);
if (rightHeight == -1) return -1; // Right subtree is not balanced
if (Math.abs(leftHeight - rightHeight) > 1) return -1; // Current node is not balanced
return 1 + Math.max(leftHeight, rightHeight); // Return height if balanced
}
public static void main(String[] args) {
TreeNode root = new TreeNode(1);
root.left = new TreeNode(2);
root.right = new TreeNode(3);
root.left.left = new TreeNode(4);
root.left.right = new TreeNode(5);
root.left.left.left = new TreeNode(6);
BalancedBinaryTreeOptimized tree = new BalancedBinaryTreeOptimized();
System.out.println(tree.isBalanced(root)); // Output: false
}
}
Editor is loading...
Leave a Comment