# How to Fix error – found cycle in the listnode in LinkedList

A linked list is a linear data structure in computer science that consists of a sequence of nodes, where each node contains a value and a reference (called a “link”) to the next node in the series.

## error – found cycle in the listnode

The error – found cycle in the listnode occurs when there is a problem with a linked list data structure, where a node in the list has a reference to another node earlier in the list, creating a cycle. The cycle can cause problems when iterating a list, as the algorithm will never reach the end of the list and may end up in an infinite loop.

See the below algorithmic code that generates an error – found cycle in the listnode in linked list data structure.

``````odd = head

while odd:
if odd.next and odd.next.next:
odd.next = odd.next.next
odd = odd.next
else:
break

odd.next = even``````

In this algorithmic code, we are trying to split a linked list into two separate lists:

1. Containing the odd-numbered nodes
2. Containing the even-numbered nodes

The main problem with the above code is that we use the same linked list for both the odd and even lists. Therefore, you modify the list by changing the next pointers of the nodes, and it will cause errors if you try to iterate the list again after the changes, as the structure of the list has been changed.

## How to Fix error – found cycle in the listnode

To fix the error – found cycle in the listnode issue, create two separate linked lists for the odd and even nodes, and add the nodes to the appropriate list while you iterate through an original linked list.

See the below algorithmic implementation to resolve the issue.

``````odd_list = ListNode(None)
even_list = ListNode(None)
odd_tail = odd_list
even_tail = even_list

is_odd = True

while current:
if is_odd:
odd_tail.next = current
odd_tail = current
else:
even_tail.next = current
even_tail = current

is_odd = not is_odd
current = current.next

odd_tail.next = None
even_tail.next = None