Balanced Binary Tree - 平衡树

2016-10-31  本文已影响29人  郑明明
    bool isBalanced(TreeNode* root) {
        TreeNode *tempTreeNode = root;
        if (tempTreeNode == NULL) {
            return true;
        }
        if (abs(getMaxDeepth(tempTreeNode->left) - getMaxDeepth(tempTreeNode->right)) > 1) {
            return false;
        }
        return isBalanced(tempTreeNode->left) && isBalanced(tempTreeNode->right);
    }
    
    int getMaxDeepth(TreeNode *treeNode) {
        if (treeNode == NULL) {
            return 0;
        }
        int left = getMaxDeepth(treeNode->left);
        int right = getMaxDeepth(treeNode->right);
        return (left > right ? left : right) + 1;
    }
上一篇 下一篇

猜你喜欢

热点阅读