Leetcode_110.平衡二叉树

思路:

从底部向上递归高度,若为空节点则返回0,否则返回左右孩子的最大高度+1。再进行高度检查即可,若子树高度差大于1则设置 flag 为 false ,直接退出即可。

递归基:遇到空节点,返回0;

AC代码:(ps.这种递归还是有点耗费空间。。)

bool flag = 1;
    unsigned check(TreeNode const *root)
    {
        if (!flag || !root)
            return 0;
        int ld = check(root->left), rd = check(root->right);
        if (ld - rd > 1 || rd - ld > 1)
        {
            flag = 0;
            return 0;
        }
        else
            return 1 + (ld >= rd ? ld : rd);
    }
    bool isBalanced(TreeNode *root)
    {
        check(root);
        return flag;
    }

 

上一篇:cve-2019-0708--(远程桌面服务远程执行代码漏洞)拿下win7权限


下一篇:【转】java中JVM的原理