У вас уже есть предложения по улучшению, поэтому вот небольшое объяснение того, что вы на самом деле сделали неправильно.
Результат вашего кода (как есть) будет:
1-> 3-> 4-> 5-> 2-> 3-> 4-> 5-> 2-> 3-> 4-> 5-> 2-> 3-> 4-> 5-> 2-> 3-> 4-> 5-> 2-> 3-> 4-> 5-> 2-> 3-> 4-> 5-> 2-> 3 -> -> 4-> 5-> 2-> 3-> 4-> 5-> 2-> 3 -> -> 4-> 5-> 2-> 3-> 4-> 5-> 2-> 3-> 4-> 5-> 2-> 3-> 4-> 5-> 2-> 3 -> -> 4-> 5-> 2-> 3-> 4-> 5-> 2-> 3-> 4-> 5-> 2-> 3-> 4-> 5-> 2-> 3-> 4-> 5-> 2-> 3-> 4-> 5-> 2-> 3 -> ... (происходит вечно)
Вот почему вам не хватает памяти при попытке напечатать этого бесконечного зверя.
Первая ошибка: вам нужно убедиться, что элемент, который будет новым последним элементом, больше не будет иметьбывший последний элемент как next
.
Вторая ошибка: ваш элемент head должен иметь прежний последний элемент как next
, а не элементы next
своего бывшего элемента next
.