Дано масив цілих чисел. Створіть зв'язаний список із цих чисел.
Напишіть метод ReorderList, який змінює порядок елементів списку з L_0 \rightarrow L_1 \rightarrow L_2 \rightarrow \ldots \rightarrow L_{n-1} \rightarrow L_n на L_0 \rightarrow L_n \rightarrow L_1 \rightarrow L_{n-1} \rightarrow L_2 \rightarrow L_{n-2} \rightarrow \ldots.
Напишіть код згідно з наступним інтерфейсом:
=== "C++" "'cpp class Node public: int data; Node *next; Node() : next(NULL) ; Node(int data, Node *next = NULL) : data(data), next(next) ; ;
class List public: Node *head, *tail; List() : head(NULL), tail(NULL) ; void addToTail(int val); // Додати число val в кінець зв'язаного списку void ReorderList(void); // Перевпорядкувати список, як описано вище void Print(void); // Вивести елементи зв'язаного списку ; "' === "Python" "'python class Node:
def __init__(self, data: int): self.data: int = data self.next: [Node | None] = None
class List:
def __init__(self): self.head: [Node | None] = None self.tail: [Node | None] = None
def addToTail(self, val: int) -> None: """Додати число val у кінець зв'язаного списку""" pass
def ReorderList(self) -> None: """Перевпорядкувати список, як описано вище""" pass
def Print(self) -> None: """Вивести елементи зв'язаного списку""" pass "'
Ви можете створювати (використовувати) додаткові методи, якщо потрібно.
У першому рядку задано число (1 \le n \le 10000). У другому рядку містяться цілих чисел.
Виведіть елементи перевпорядкованого зв'язаного списку, використовуючи метод Print.
Приклад 1