递归判断左右子树高度差

        if (pRoot == NULL) return 0;
        int leftDepth = getDepth(pRoot->left);
        if (leftDepth == -1) return -1;
        int rightDepth = getDepth(pRoot->right);
        if (rightDepth == -1) return -1;
        if (abs(leftDepth - rightDepth) > 1) return -1;
        return max(leftDepth, rightDepth) + 1;

高度差大于1的进行排除

return getDepth(pRoot) != -1;