public boolean isValid() {
        if (root.isNil()) {
            return true;
        } else {
            return getRoot().isBSTValid() &&
                    getRoot().isBlackValid() &&
                    getRoot().isRedValid();
        }
    }