Task 35. Является ли односвязный список палиндромом

Task 35. Является ли односвязный список палиндромом

UniLecs

Задача: Дан односвязный список без цикла. Проверить является ли список палиндромом (по значению).

Например, следующий список 1 -> 2 -> 3 -> 2 -> 1 является палиндромом.

Идея: есть несколько вариантов решения данной задачи:

1. Получить инвертированный список и сравнить с исходным. В данном случае проверять достаточно только первые половины.

2. Воспользуемся стеком для записи первой половины значений из списка. 

Затем при проходе списка с середины будем проверять значения со значениями из стека.

Реализация:

реализация на C#

https://gist.github.com/unilecs/2669c05c89a8ec5424202568a8ad359d

Тест:

https://dotnetfiddle.net/Qje0Lt


Report Page