Идея реализации LRU-кэша с использованием списка (DLL / SLL) состоит в том, чтобы переместить недавно использованную страницу (узел) в начало.
Это включает в себя большое смещение, скажем, узел находится в середине из списка (DLL / SLL), вам нужно будет удалить узел, переставить следующий указатель предыдущего узла.
Теперь в этом случае, если мы используем Singlely Linked List, нам нужно сохранить предыдущий узел самого последнего доступного узла.
Эта операция не требуется, если мы используем двусвязный список, поскольку он уже поддерживает предыдущий и следующий указатель.
Подвох здесь обращается к этому последнему узел, для которого мы используем хеш-таблицу, дающую нам доступ к этому узлу в O (1).