Leetcode 110 Balanced Binary Tree

来源:互联网 发布:安卓编程软件开发 编辑:程序博客网 时间:2024/04/29 16:11

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.

判断树是否是平衡的。

注意平衡树的定义,每一个点的左右子树高度差不超过1,并不是叶子结点的最大深度和最小深度不超过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 {public:    int dfs(TreeNode* root,bool& res)    {        if(!root) return 0;        int a=dfs(root->left,res)+1;        int b=dfs(root->right,res)+1;        if(abs(a-b)>1) res=false;        return max(a,b);    }    bool isBalanced(TreeNode* root) {        bool res=true;        dfs(root,res);        return res;    }};


1 0