Code360 powered by Coding Ninjas X Naukri.com. Code360 powered by Coding Ninjas X Naukri.com
Last Updated: 16 Dec, 2020

Is it a Circular Linked List?

Easy
Asked in companies
WalmartMicrosoftSAP Labs

Problem statement

You are given a Singly Linked List of integers. You have to find if the given linked list is circular or not.

A circular linked list is a sequence of elements in which every element has a link to its next element in the sequence and the last element has a link to the first element. This means that circular linked list is similar to the single linked list except that the last node points to the first node in the list.

image

Input Format
The first line of input contains a single integer T, representing the number of test cases or queries to be run. 

The first line of each test case contains the elements of the circular linked list separated by a single space and terminated by -1. Hence, -1 would never be a list element.

The second line contains a boolean value ‘val’, if ‘val’ is 1 then the given list is circular.
Output Format
For each test case, print “True” if the given linked list is circular, else print “False”.

Print the output of each test case in a separate line.
Note
You do not need to print anything, it has already been taken care of. Just implement the given function.
Constraints
1 <= T <= 10
1 <= N <= 5 * 10^4
-10^9 <= data <= 10^9 and data != -1
0 <= val <= 1

Where 'N' is the number of nodes in the linked list, ‘data’ represents the value of the nodes of the list.

Time Limit: 1 sec

Approaches

01 Approach

In this approach, we will traverse the list until we reach the base case.
 

Base case: When we reach one of the following node

  • NULL:  represents that the given linked list is not circular.
  • head: represents that the given linked list is circular.
     

Recursive state: circularLLHelper(cur, head)

Next recursive state: circularLLHelper(cur->next, head)