class Solution {
public boolean isBalanced(TreeNode root) {
return dfsHelper(root) != -1;
}
public int dfsHelper(TreeNode root){
if(root == null){
return 0;
}
int leftHeight = dfsHelper(root.left);
if(leftHeight == -1) {
return -1;
}
int rightHeight = dfsHelper(root.right);
if (rightHeight == -1){
return -1;
}
if(Math.abs(leftHeight - rightHeight) > 1) {
return -1;
}
return 1 + Math.max(leftHeight, rightHeight);
}
}