Given a singly linked list, find if the linked list is circular or not. A linked list is called circular if it is not NULL-terminated and all nodes are connected in the form of a cycle. Below is an example of a circular linked list.
An empty linked list is considered as circular.
Note that this problem is different from cycle detection problem, here all nodes have to be part of cycle.
The idea is to store head of the linked list and traverse it. If we reach NULL, linked list is not circular. If reach head again, linked list is circular.
This article is contributed by Shivam Gupta. If you like GeeksforGeeks and would like to contribute, you can also write an article and mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above
Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: DSA Self Paced. Become industry ready at a student-friendly price.
- Convert singly linked list into circular linked list
- Circular Queue | Set 2 (Circular Linked List Implementation)
- Reverse a circular linked list
- Sum of the nodes of a Circular Linked List
- Deletion from a Circular Linked List
- Circular Linked List | Set 2 (Traversal)
- Josephus Circle using circular linked list
- Exchange first and last nodes in Circular Linked List
- Deletion at different positions in a Circular Linked List
- Delete every Kth node from circular linked list
- Reverse a doubly circular linked list
- Delete all odd nodes of a Circular Linked List
- Delete all the even nodes of a Circular Linked List
- Circular Singly Linked List | Insertion
- Count nodes in Circular linked list
- Doubly Circular Linked List | Set 2 (Deletion)
- Sorted insert for circular linked list
- Circular Linked List | Set 1 (Introduction and Applications)
- Split a Circular Linked List into two halves
- Create new linked list from two given linked list with greater element at each node