leetcode刷题, 总结,记录,备忘 110

来源:互联网 发布:sql把表中一列全部增值 编辑:程序博客网 时间:2024/05/16 20:28

leetcode110

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.

使用递归,计算每个子树的深度,以及2个子树分别是否为平衡树,这3个条件作为判断条件,还是比较容易理解的。

/** * 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 {public:    bool Balanced(TreeNode * root, int & depth)    {        if (root == NULL)        {            depth = 0;            return true;        }                int ldepth, rdepth;                bool left = Balanced(root->left, ldepth);        bool right = Balanced(root->right, rdepth);        depth = max(ldepth, rdepth) + 1;                return left && right && abs(ldepth - rdepth) <= 1;    }    bool isBalanced(TreeNode* root) {      int depth;      return Balanced(root, depth);    }};


0 0
原创粉丝点击