Это невозможно.
Объяснение
Если вы действительно хотите сделать это в O (1) и хотите сохранить единый список, вы можете подумать о сохранении второго последнего узла в дополнение к последнему узлу.
Но, если не считать организационного ужаса, он все равно не сработает. Конечно, в pop_back
вы могли бы просто delete tail;
и установить хвост для второго последнего элемента. Но теперь вам все равно потребуется al oop для определения нового второго последнего элемента.
Это даже плохо?
Я так не думаю. Каждая структура данных имеет свои преимущества и недостатки. По моему мнению, структура данных, которая делает некоторые вещи действительно хорошо, но сосет на других, лучше, чем структура данных, которая делает все очень быстро. Лучше держать свой класс в тонком положении, оптимизировать его для конкретных c сценариев ios и принять его недостатки.