Circular linked list (source code)

= Circular linked list

A <linked list> in which following successors returns to the starting node rather than reaching null. A common non-dummy representation uses a null tail pointer for the empty case and a finite simple cycle for the nonempty case; `tail.next` is the first node. A traversal stops after one complete turn, comparing <object identity> with its remembered start. Appending is constant-time once the insertion point and absence of duplicate keys are established.