平衡二叉树 待续

来源:互联网 发布:中世纪2优化9贴木耳 编辑:程序博客网 时间:2024/06/16 18:10

【题目】

输入一棵二叉树,判断该二叉树是否是平衡二叉树。

【代码】

递归:

class Solution {public:    int depth(TreeNode *pRoot)//求深度        {        int dep=0;        if(pRoot==NULL)return dep;        int lefts=depth(pRoot->left);        int rights=depth(pRoot->right);        return lefts>rights?lefts+1:rights+1;//这里需要注意的是:返回树的深度是左右子树的最深+1,+1,+1,重要的事情说三遍    }    bool IsBalanced_Solution(TreeNode* pRoot) {           if(pRoot==NULL)return 1;          int dep_l= depth(pRoot->left);          int dep_r= depth(pRoot->right);        if(dep_l-dep_r>1||dep_l-dep_r<-1)return 0;        return  IsBalanced_Solution(pRoot->left)&&IsBalanced_Solution(pRoot->right);                   }};




0 0
原创粉丝点击