Зміна порядку списку
Дуже проста
Обмеження на час виконання 1 секунда
Обмеження на використання пам'яті 64 мегабайти
Задано масив цілих чисел. Створіть Зв’язний Список із цих чисел.
Реалізуйте метод ReorderList
, який перегруповує список L[0] →
L[1] →
L[2] →
... →
L[n-1] →
L[n]
у список L[0] →
L[n] →
L[1] →
L[n-1] →
L[2] →
L[n-2] →
...
.
Напишіть код згідно наступного інтерфейсу:
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); // Вивести елементи Зв’язного Списку };
Ви можете створювати (використовувати) за необхідності додаткові методи.
Вхідні дані
Перший рядок містить число n (1 ≤ n ≤ 100). Другий рядок містить n цілих чисел.
Вихідні дані
Виведіть елементи Зв’язного Списку, використовуючи метод Print
, після перегрупування його елементів.
Приклади
Вхідні дані #1
Відповідь #1
Відправки 903
Коефіцієнт прийняття 56%