IntroductionA circular linked list is a linked list where the last node points to the first node instead of NULL. This linked list comes with a pointer END which points to the last element. Since the last element points to the first element, this enables quick traversal from the last element to the first. The circular linked list also enables traversal of the entire linked list starting from any one point. Show The circular linked list can be represented as follows: We shall now analyze the time and space complexity of the various operations that can be performed on a circular linked list, such as traversal, insertion, and deletion. Circular Linked ListIn this article, you will learn what circular linked list is and its types with implementation. A circular linked list is a type of linked list in which the first and the last nodes are also connected to each other to form a circle. There are basically two types of circular linked list: 1. Circular Singly Linked List Here, the address of the last node consists of the address of the first node. 2. Circular Doubly Linked List Here, in addition to the last node storing the address of the first node, the first node will also store the address of the last node. Note: We will be using the singly circular linked list to represent the working of circular linked list. Circular Singly Linked List | InsertionWe have discussed Singly and Circular Linked List in the following post: Why Circular? In a singly linked list, for accessing any node of the linked list, we start traversing from the first node. If we are at any node in the middle of the list, then it is not possible to access nodes that precede the given node. This problem can be solved by slightly altering the structure of a singly linked list. In a singly linked list, the next part (pointer to next node) is NULL. If we utilize this link to point to the first node, then we can reach the preceding nodes. Refer to this for more advantages of circular linked lists. In this post, the implementation and insertion of a node in a Circular Linked List using a singly linked list are explained. Implementation The pointer last points to node Z and last -> next points to node P. Why have we taken a pointer that points to the last node instead of the first node? Insertion
Insertion in an empty List After inserting node T, After insertion, T is the last node, so the pointer last points to node T. And Node T is the first and the last node, so T points to itself. C++
Java
Python3
C#
Javascript
After insertion, Function to insert nodes at the beginning of the list, C++
Java
Python3
C#
Javascript
After insertion, Function to insert a node at the end of the List C++
Java
Python3
C#
Javascript
After searching and insertion, Function to insert a node at the end of the List, C++
Java
Python3
C#
Javascript
The following is a complete program that uses all of the above methods to create a circular singly linked list. C++
Java
Python3
C#
Javascript
Output: 2 4 6 8 10 12This article is contributed by Anuj Chauhan. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to . See your article appearing on the GeeksforGeeks main page and help other Geeks.
Article Tags :
Linked List
circular linked list Practice Tags :
Linked List circular linked list Linked List | Set 2 (Inserting a node)We have introduced Linked Lists in the previous post. We also created a simple linked list with 3 nodes and discussed linked list traversal. C++
C
Java
Python
C#
Javascript
In this post, methods to insert a new node in linked list are discussed. A node can be added in three ways |