LeetCode:Balanced Binary Tree

来源:互联网 发布:记忆碎片软件 编辑:程序博客网 时间:2024/06/13 06:03

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.

// Source : https://oj.leetcode.com/problems/balanced-binary-tree/// Author : Chao Zeng// Date   : 2014-12-22struct TreeNode {    int val;    TreeNode *left;    TreeNode *right;    TreeNode(int x) : val(x), left(NULL), right(NULL){}};class Solution {public:    int depth(TreeNode *root){        if (!root)            return 0;        int l = depth(root->left);        int r = depth(root->right);        return l < r ? r + 1 : l + 1;    }    bool isBalanced(TreeNode *root){        if (!root)            return true;        int l = depth(root->left);        int r = depth(root->right);        if (abs(l-r)<=1)            return isBalanced(root->left) && isBalanced(root->right);        else            return false;    }};


0 0
原创粉丝点击