Leetcode 之Balanced Binary Tree(49)

用递归的方式来做,左右两棵子树的高度差不超过1。分成两部分,一部分递归得到树的高度,一部分递归检查左右子树是否是平衡二叉树。

  int getHeight(TreeNode *root)
      {
          if (root == nullptr)return 0;
          return max(getHeight(root->left), getHeight(root->right)) + 1;
      }
      bool isBalancedTree(TreeNode *root)
      {
          if (root == nullptr)return true;
          if (root->left == nullptr && root->right == nullptr)return true;
          if (abs(getHeight(root->left) - getHeight(root->right)) > 1)return false;

          return(isBalancedTree(root->left) && isBalancedTree(root->right));
      }
View Code
原文地址:https://www.cnblogs.com/573177885qq/p/5549532.html