 On the other hand, doubly linked lists do not allow tail-sharing and cannot be used as persistent data structures

A circularly linked list may be a natural option to represent arrays that are naturally circular, e.g.the corners of a polygon, a pool of buffers that are used and released in FIFO ("first in, first out") order, or a set of processes that should be time-shared in round-robin order.In these applications, a pointer to any node serves as a handle to the whole list.