美文网首页
7_7平衡二叉树判断

7_7平衡二叉树判断

作者: X_Y | 来源:发表于2017-10-10 23:37 被阅读11次

    有一棵二叉树,请设计一个算法判断这棵二叉树是否为平衡二叉树。

    给定二叉树的根结点root,请返回一个bool值,代表这棵树是否为平衡二叉树。

    /*
    struct TreeNode {
        int val;
        struct TreeNode *left;
        struct TreeNode *right;
        TreeNode(int x) :
                val(x), left(NULL), right(NULL) {
        }
    };*/
    
    class CheckBalance {
    public:
        int get_height(TreeNode* root, int level, bool& res)
        {
            if(NULL == root){
                return level;
            }
            int lh = get_height(root->left, level+1, res);
            if(!res) return level;
            int rh = get_height(root->right, level+1, res);
            if(!res) return level;
            if(abs(lh-rh)>1){
                res = false;
            }
            return lh>rh ? lh : rh;
        }
        bool check(TreeNode* root) {
            // write code here
            bool res = true;
            get_height(root, 1, res);
            return res;
        }
    };
    
    

    相关文章

      网友评论

          本文标题:7_7平衡二叉树判断

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