We have discussed singly and doubly linked lists in the following posts.

Introduction to Linked List & Insertion

Doubly Linked List Introduction and Insertion

**Circular linked list** is a linked list where all nodes are connected to form a circle. There is no NULL at the end. A circular linked list can be a singly circular linked list or doubly circular linked list.

**Advantages of Circular Linked Lists:**

**1) **Any node can be a starting point. We can traverse the whole list by starting from any point. We just need to stop when the first visited node is visited again.

**2) ** Useful for implementation of queue. Unlike this implementation, we don’t need to maintain two pointers for front and rear if we use circular linked list. We can maintain a pointer to the last inserted node and front can always be obtained as next of last.

**3)** Circular lists are useful in applications to repeatedly go around the list. For example, when multiple applications are running on a PC, it is common for the operating system to put the running applications on a list and then to cycle through them, giving each of them a slice of time to execute, and then making them wait while the CPU is given to another application. It is convenient for the operating system to use a circular list so that when it reaches the end of the list it can cycle around to the front of the list.

**4)** Circular Doubly Linked Lists are used for implementation of advanced data structures like Fibonacci Heap.

**Next Posts : **

**Circular Linked List | Set 2 (Traversal)**

**Circular Singly Linked List | Insertion**

Please write comments if you find any bug in above code/algorithm, or find other ways to solve the same problem

## Recommended Posts:

- Stack Data Structure (Introduction and Program)
- Circular Queue | Set 2 (Circular Linked List Implementation)
- Deletion from a Circular Linked List
- Circular Singly Linked List | Insertion
- Check if a linked list is Circular Linked List
- Circular Linked List | Set 2 (Traversal)
- Doubly Linked List | Set 1 (Introduction and Insertion)
- Queue | Set 2 (Linked List Implementation)
- Linked List | Set 2 (Inserting a node)
- Linked List | Set 1 (Introduction)
- Sorted insert for circular linked list
- Delete a node in a Doubly Linked List
- Split a Circular Linked List into two halves
- Reverse a Doubly Linked List
- Reverse a linked list