🚩传送门:牛客题目
题目
输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。
解题思路:递归
public class Solution {
public int GetTreeHight(TreeNode root){
if(root==null)return 0;
int lefthight=GetTreeHight(root.left);
int righthight=GetTreeHight(root.right);
//1.子树不平衡或当前不平衡
if(lefthight==-1||righthight==-1||Math.abs(lefthight-righthight)>1)
return -1;
//2.平衡
return Math.max(lefthight,righthight)+1;
}
public boolean IsBalanced_Solution(TreeNode root) {
if(root==null) return true;
return GetTreeHight(root)>0;
}
}