还不快抢沙发

添加新评论

给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: > 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。 示例 1: 给定二叉树 [3,9,20,null,null,15,7] ``` 3 / \ 9 20 / \ 15 7 ``` 返回 true 。 示例 2: 给定二叉树 [1,2,2,3,3,null,null,4,4] ``` 1 / \ 2 2 / \ 3 3 / \ 4 4 ``` 返回 false 。 ``` bool isBalanced(TreeNode* root) { if (root == NULL) return true; int x = depth(root->left) - depth(root->right); if (x>1 || xleft) && isBalanced(root->right); } int depth(TreeNode* root) { if (root == NULL) return 0; if (root->left == NULL && root->right == NULL) return 1; return max(depth(root->left), depth(root->right)) + 1; } ```