Balanced Binary Tree LeetCode solution in Java

1
/**
2
* Definition for a binary tree node. public class TreeNode { int val; TreeNode left; TreeNode
3
* right; TreeNode() {} TreeNode(int val) { this.val = val; } TreeNode(int val, TreeNode left,
4
* TreeNode right) { this.val = val; this.left = left; this.right = right; } }
5
*/
6
class Solution {
7

8
public int treeHeight(TreeNode root) {
9
if (root == null) return 0;
10

11
int left = treeHeight(root.left);
12
int right = treeHeight(root.right);
13

14
return (Math.max(left, right) + 1);
15
}
16

17
public boolean isBalanced(TreeNode root) {
18

19
if (root == null) return true;
20

21
boolean leftBalanced = isBalanced(root.left);
22
boolean rightBalanced = isBalanced(root.right);
23
int leftHeight = treeHeight(root.left);
24
int rightHeight = treeHeight(root.right);
25

26
// Return true only when all conditions are true
27
return (leftBalanced && rightBalanced && Math.abs(leftHeight - rightHeight) <= 1);
28
}
29
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0