Кольцевой двусвязный список со сторожевым узлом

Поля

Поля LinkedList:

Поля Node:

Особенность: сторожевой узел (sentinel).

Sentinel - сторожевой узел

Зачем он нужен?

Для удаления в связных списках нам до сих пор требовалось проверять prev и next на пустоту, заморачиваться с тем, пустым ли станет список после удаления. Это жутко неудобно.

Sentinel освобождает нас от этого: все ссылки nullptr теперь заменим ссылкой на sentinel.

А что он из себя будет представлять?

Пример