Перемешать элементы в списке
Дан однонаправленный связный список L : L 0 → L 1 →…→ L n -1 → L n , Надо перемешать его элменты в следующем порядке: L 0 → L n → L 1 → L n -1 → L 2 → L n -2 →… То есть первый, последний, второй, предпоследний и т.д. Нельзя модифицировать значения val в ячейке, можно только менять указатели. Пример 1: Дан список 1->2->3->4, перемешиваем его так: 1->4->2->3. Example 2: Дан список 1->2->3->4->5, перемешиваем его так: 1->5->2->4->3. Идея решения Нам нужно сделать три шага: разбить исходный список на две равные части; вторую часть развернуть, см. Развернуть связный список сформировать новый список, добавляя в результат попеременно то элемент из первого списка, то из второго. Компилируемое решение class Solution { public void reorderList(ListNode head) { if (head == null || head. next == null ) return ; // step 1. находим середину списка и его конец // prev - это хвост первой половины списк...