leetcode Balanced Binary Tree

来源:互联网 发布:js中单双引号 编辑:程序博客网 时间:2024/06/03 16:48

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 a binary tree node. * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {    int height(TreeNode *root)    {        if (!root) return 0;       return max(height(root->left),height(root->right)) + 1;    }public:    bool isBalanced(TreeNode* root) {        if (!root) return true;        if (root->left) if (!isBalanced(root->left)) return false;        if (root->right) if (!isBalanced(root->right)) return false;                int l = height(root->left);        int r= height(root->right);                return abs(l - r) >1?false:true;    }};


0 0