平衡二叉树

来源:互联网 发布:中铁建物业怎么样知乎 编辑:程序博客网 时间:2024/06/05 16:01

题目描述

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

class Solution {public:    int TreeDepth(TreeNode* pRoot){    if(pRoot==NULL)        return 0;    int left=TreeDepth(pRoot->left);    int right=TreeDepth(pRoot->right);    return left>right?(left+1):(right+1);}    //判断是否是平衡二叉树,比较每一层的左右子树的枝是否平衡   bool IsBalanced_Solution(TreeNode* pRoot) {       if(pRoot==NULL)        return true;    int left=TreeDepth(pRoot->left);    int right=TreeDepth(pRoot->right);    int diff=left-right;    if(diff>1 || diff<-1)        return false;    return IsBalanced_Solution(pRoot->left) && IsBalanced_Solution(pRoot->right);    }};


0 0
原创粉丝点击