Circular linked list
A circular linked list is an ordinary linked list, except that the last element holds the reference to the first element as its next element. This, of course, justifies its name. It would be useful when, for example, you are holding a list of players in a list and they play in turn in a round robin fashion. The implementation is simplified if you use a circular linked list and just keep rotating as the players complete their turn:
The basic structure of a circular linked list is the same as that of a simple linked list; no more fields or methods are required:
public class CircularLinkedList<E> extends LinkedList<E>{ }
Insertion
This is the same as the insertion for a simple linked list, except that you assign the last references next to the first:
@Override public Node<E> appendFirst(E value) { Node<E> newNode = super.appendFirst(value); last.next = first; return newNode; ...