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)); }