С таким кодом не принял
public int compare(T o1, T o2) {
            for (Comparator<T> comparator : comparators) {
                if (comparator.compare(o1, o2) != 0) return comparator.compare(o1, o2);
            }
            return 0;
        }
А с таким принял (подглядел в решении)
public int compare(T o1, T o2) {
            int res = 0;
            for (Comparator<T> comparator : comparators) {
                res = comparator.compare(o1, o2);
                if (res != 0) return res;
            }
            return 0;
        }
в чем разница?