Нужен алгоритм для разбора списка с середины, чтоб выводил в порядке заданном числами в ячейках. Мой код не выводит оставшиеся ячейки. Благодарю Вас!

    List<Integer> list = new ArrayList<>();
    list.add(5);
    list.add(3);
    list.add(1);
    list.add(2);
    list.add(4);
    list.add(6);

        for (int i = 0; i <= list.size(); i++) {
            int a = 0;
            if (i % 2 == 0) {
                a = list.get(list.size() / 2 - 1);
                list.remove(list.size() / 2 - 1);
            }
            if (i % 2 != 0) {
                a = list.get(list.size() / 2);
                list.remove(list.size() / 2);
            }
          //  if(i == list.size()-1){i--;i--;}
            System.out.println(a);
        }

Ответы (1 шт):

Автор решения: tym32167

Вот пример кода на C#, на java сами переведете - тут ничего сложного нет.

var list = new[] {6,4,2,1,3,5,7};

int midToStart = list.Length / 2 + list.Length % 2 - 1;
int midToEnd = list.Length / 2;


while(midToStart >= 0 && midToEnd <list.Length)
{
    if (midToStart == midToEnd){
        Console.WriteLine(list[midToEnd]);
    }
    else{
        Console.WriteLine(list[midToStart]);
        Console.WriteLine(list[midToEnd]);
    }
    
    midToStart--;
    midToEnd++;     
}
    
→ Ссылка