Posted: 4 Dec, 2020
Difficulty: Easy

## PROBLEM STATEMENT

#### The absolute value of a real number x, denoted |x|, is the non-negative value of x without regard to its sign.

##### Example:
``````If the given list is {1 -> -2 -> 3} (which is sorted on absolute value), the returned list should be {-2 -> 1 -> 3}.
``````
##### Input Format:
``````The first line of input contains a single integer ‘T’, representing the number of test cases or queries to be run. Then the T test cases follow.

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

It is guaranteed that the given list is sorted based on absolute value.
``````
##### Output Format:
``````For each test case, print the sorted linked list. The elements of the sorted list should be single-space separated, terminated by -1.

The output of each test case is printed in a separate line.
``````
##### Note :
``````You don't need to print the output, 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

Where 'N' denotes the number of elements in the Singly Linked List and 'data' represents the value of those elements.

Time Limit : 1 sec
`````` Approach 1

We will use the ‘Insertion Sort’ algorithm to sort the given linked list.

## Algorithm:

We will make a list ‘SORTED_LIST’ which is initially empty and it stores the list after sorting.

We will traverse the given list and insert the node in the ‘SORTED_LIST’ such that nodes are present in sorted order.

For each node follow these steps:

• If ‘SORTED_LIST’ is empty or the head of the ‘SORTED_LIST’ has a value greater than the node, in this case, the current node will become the new head of ‘SORTED_LIST’.
• Else, we will traverse the ‘SORTED_LIST’ until we find the node that has a value greater than the current node or until we reach the end.
• We will insert the node at this position and change it’s ‘next’ value such that it points to the node which is greater than the current node.