Split a Circular Linked List

Try to solve the Split a Circular Linked List problem.

Statement

Given a circular linked list, list, of positive integers, your task is to split it into two circular linked lists. The first circular linked list should contain the first half of the nodes (exactly ⌈list.length / 2⌉ nodes), in the same order they appeared in the original list, while the second circular linked list should include the remaining nodes in the same order.

Return an array, answer, of length 2, where:

  • answer[0] is the circular linked list representing the first half.

  • answer[1] is the circular linked list representing the second half.

Note: A circular linked list is a standard linked list where the last node points back to the first node.

Constraints:

Let n be the number of nodes in a linked list.

  • 2 \leqn \leq10310^{3}

  • 00\leq Node.data \leq10510^{5}

  • LastNode.next = FirstNode where LastNode is the last node of the list and FirstNode is the first one.

Examples

Level up your interview prep. Join Educative to access 70+ hands-on prep courses.