import java.util.*;
public class Solution {
public boolean IsBalanced_Solution(TreeNode root) {
if (root == null){
return true;
}
int left = dfs(root.left);
int right = dfs(root.right);
if (left - right > 1 || left - right < -1){
return false;
}
return IsBalanced_Solution(root.left) && IsBalanced_Solution(root.right);
}
private int dfs (TreeNode node){
if (node == null){
return 0;
}
int left = dfs(node.left);
int right = dfs(node.right);
return Math.max(left, right ) + 1;
}
}