首页 > 代码库 > [LeetCode] Balanced Binary Tree

[LeetCode] Balanced Binary Tree

Given a binary tree, determine if it is height-balanced.

For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never differ by more than 1.

/** * Definition for binary tree * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public:    int hleft;    int hright;        bool isBalanced(TreeNode *root) {        if(root == NULL)            return true;        hleft = height(root->left,0);        hright = height(root->right,0);        if(abs(hleft-hright)<=1 && isBalanced(root->left)&&isBalanced(root->right))            return true;        else            return false;            }private:    int height(TreeNode *root,int h)    {       if(root==NULL)           return h;              h++;       int h1 = height(root->left,h);       int h2 = height(root->right,h);       return h1> h2 ? h1 : h2;              }};