Given a binary tree, determine if it is height-balanced.
For this problem, a height-balanced binary tree was defined as a binary tree in which the depth of the Every node never differ by more than 1.
Solution: contains double recursion, one is to calculate degth, one is to judge the balance
Judge the left and right node depth of the main node, if not in ( -1,1), return false, otherwise, continue to determine whether its left and right node is a balanced binary tree
classSolution { Public: intDepth (TreeNode *node) { if(!node)return 0; returnMax (Depth (node->left), Depth (node->right)) +1; } BOOLIsbalanced (treenode*root) { if(!root)return true; intLdepth=depth (root->Left ); intRdepth=depth (root->Right ); returnABS (ldepth-rdepth) <=1&& isbalanced (root->left) && isbalanced (root->Right ); }};
"Leetcode" 110-balanced Binary Tree