题目
输入一棵二叉树,判断该二叉树是否是平衡二叉树。
思路
比较左右路径长度
不满足相差小于等于1 则返回-1 即不是
满足的话返回两者间的最长路径 继续递归
代码
public class Solution {
public boolean IsBalanced_Solution(TreeNode root) {
if(root == null) return true;
return deep(root) == -1 ? false : true;
}
public int deep(TreeNode root){
if(root == null) return 0;
int left = deep(root.left);
int right = deep(root.right);
if(left == -1 || right == -1 || Math.abs(left - right) >1) return -1;
//如果满足条件 返回 最长的路径深度
else return 1+(left>right ? left: right);
}
}