В вашем коде нужно изменить три вещи
В условиях, когда вы выполняете итерацию, сделайте так, чтобы вы продолжали считать нули
while (iterator.hasNext() && 0 == iterator.next()) {
Обратно после подсчетаконечные нули
Collections.reverse(list);
sublist
это от 0
до list.size() - i;
Полный код
List<Integer> list = Arrays.asList(0, 11, 0, 0, 0, 11, 11, 0, 0, 0);
Collections.reverse(list);
Iterator<Integer> iterator = list.iterator();
int i = 0;
while (iterator.hasNext() && 0 == iterator.next()) {
++i;
}
Collections.reverse(list);
return list.subList(0, list.size() - i);