🚩传送门:牛客题目

题目

输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。

解题思路:递归

  1. public class Solution {
  2. public int GetTreeHight(TreeNode root){
  3. if(root==null)return 0;
  4. int lefthight=GetTreeHight(root.left);
  5. int righthight=GetTreeHight(root.right);
  6. //1.子树不平衡或当前不平衡
  7. if(lefthight==-1||righthight==-1||Math.abs(lefthight-righthight)>1)
  8. return -1;
  9. //2.平衡
  10. return Math.max(lefthight,righthight)+1;
  11. }
  12. public boolean IsBalanced_Solution(TreeNode root) {
  13. if(root==null) return true;
  14. return GetTreeHight(root)>0;
  15. }
  16. }