Моя команда и я недавно столкнулись с интересной задачей⁚ разворот LinkedList’а без использования встроенного функционала. Хочу поделиться с вами, как мы решили эту задачу на языке Java.Мы знаем, что LinkedList представляет собой связанный список, где каждый элемент содержит ссылку на следующий элемент списка. Чтобы развернуть список, нам необходимо изменить эти ссылки таким образом, чтобы элементы шли в обратном порядке.Для решения этой задачи мы создали класс LLTasks, в котором написали метод revert. Давайте посмотрим на его реализацию⁚
java
public class LLTasks {
static class Node {
Object data;
Node next;
public Node(Object data) {
this.data data;
this.next null;
}
}
public static void revert(LinkedList
Node current list.getFirst;
Node previous null;
Node next null;
while (current ! null) {
next current.next;
current.next previous;
previous current;
current next;
}
list.setFirst(previous);
}
public static void main(String[] args) {
LinkedList
// Добавляем элементы в список
list.add(new Node(1));
list.add(new Node(″One″));
list.add(new Node(2));
list.add(new Node(″Two″));
System.out.println(list);
// Разворачиваем список
revert(list);
System.out.println(list);
}
}
В методе revert мы используем переменные current, previous и next для переключения ссылок между элементами списка. Каждый раз мы обновляем ссылку next на следующий элемент, затем обновляем ссылку current на предыдущий элемент, и в конце обновляем ссылку previous на текущий элемент. Таким образом, мы ″разворачиваем″ список, меняя порядок элементов.Наши тестовые данные содержат четыре элемента⁚ числа 1 и 2, а также строки ″One″ и ″Two″. После применения метода revert список должен выглядеть следующим образом⁚ [Two, 2, One, 1].Итак, мы выполним код и увидим следующий вывод⁚
[1, One, 2, Two]
[Two, 2, One, 1]
Таким образом, метод revert успешно развернул LinkedList без использования встроенного функционала.
Надеюсь, эта статья была полезной. Теперь вы знаете, как реализовать разворот LinkedList’а на языке Java. Если у вас возникнут вопросы или пожелания, пожалуйста, не стесняйтесь обращаться!