Я не понимаю, почему удаление в конце одного связанного списка происходит в O (1) раз, поскольку статья в википедии.
Один связанный список состоит из узлов. A node содержит какие-то данные и ссылку на следующий node. Ссылка последнего node в связанном списке равна null.
-------------- -------------- --------------
| data | ref | -> | data | ref | -> ... -> | data | ref |
-------------- -------------- --------------
Я действительно могу удалить последний node в O (1). Но в этом случае вы не устанавливаете ссылку последнего последнего node, предыдущего, на null, поскольку он все еще содержит ссылку на удаленный последний node. Поэтому мне было интересно, не игнорируют ли они это в анализе времени выполнения? Или вам нужно, чтобы вам не приходилось менять это, поскольку ссылка, ну, просто указывает на ничего, и такое считается нулевым?
Потому что, если это не будет пренебрегать, я бы сказал, что удаление O (n). Поскольку вам нужно перебрать весь список, чтобы перейти к последнему node и установить его ссылку также на null. Только в двойном связанном списке было бы действительно O (1).
-edit- Возможно, эта точка зрения дает еще больше возможностей. Но я вижу "удаление node" как успешное удаление самого node и установка предыдущей ссылки на нуль.