Обычно это требование появляется при заполнении списка слева направо. Если это так, то вопрос не в том, как вставить один элемент за O (1) время, а в том, как вставить n элементов за O ( n ), и в простом ответе это построить список задом наперед и полностью изменить его в конце.
Я, конечно, предполагаю некоторый функциональный язык, который обеспечивает неизменные типы данных. Если ваши типы данных изменчивы, вы можете просто запомнить последний узел и добавить новый элемент, назначив его указатель next
.