New update is available. Click here to update.

Topics

You have been given a Singly Linked List of integers, determine if it forms a cycle or not. If there is a cycle, remove the cycle and return the list.

A cycle occurs when a node's ‘next’ points back to a previous node in the list.

Detailed explanation

```
1 <= T <= 10
1 <= N <= 5 * 10^4
-1 <= pos < N
-10^9 <= data <= 10^9 and data != -1
Where 'N' is the size of the singly linked list, and "data" is the Integer data of the singly linked list.
```

```
2
3 2 0 -4 -1
1
1 2 -1
-1
```

```
True
3 2 0 -4 -1
False
1 2 -1
```

```
In the 1st test case, there is a cycle, from index 1 -> 2 -> 3 -> 1. The cycle's length is 3.
```

```
In the 2nd test case, there is no cycle.
```

```
2
1 1 1 -1
0
3 -3 -1
-1
```

```
True
1 1 1 -1
False
3 -3 -1
```