平衡二叉树

作者: cherryleechen | 来源:发表于2019-05-06 21:42 被阅读0次

    时间限制:1秒 空间限制:32768K

    题目描述

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

    我的代码

    class Solution {
    public:
        bool IsBalanced_Solution(TreeNode* pRoot) {
            //从上往下判断的话,每次判断父节点时,对应的子节点都会遍历一遍。
            //采用从下往上判断,如果是,返回高度值;如果不是,返回-1。
            return Helper(pRoot)==-1?false:true;
        }
        int Helper(TreeNode* pRoot){
            if(pRoot==nullptr)
                return 0;
            int left=Helper(pRoot->left);
            if(left==-1)
                return -1;
            int right=Helper(pRoot->right);
            if(right==-1)
                return -1;
            return abs(left-right)<2?1+max(left,right):-1;
        }
    };
    

    运行时间:3ms
    占用内存:484k

    相关文章

      网友评论

        本文标题:平衡二叉树

        本文链接:https://www.haomeiwen.com/subject/jrcqoqtx.html