Given a singly linked list containing N nodes. Modify the value of first half nodes such that 1st node’s new value is equal to the last node’s value minus first node’s current value, 2nd node’s new value is equal to the second last node’s value minus 2nd node’s current value, likewise for first half nodes. Replace the second half nodes with the first half nodes with initial values of first half nodes. If n is odd then the value of the middle node remains unchanged.
Note: Input in the linked list is like new node will be entered at the head position (1st position).
First line consists of T test cases. First line of every test case consists of N, denoting the number of nodes. Second line of every test case consists of Node of linked list.
Single line output, return the head of modified linked list.
The task is to complete the function modifyTheList() which should modify the list as required.
1 <= T <= 200
1 <= N <= 100
10 4 5 3 6
2 9 8 12 7 10
-4 -1 5 4 10
8 -2 4 8 9 2
Testcase 1: After modifying the linked list as required, we have new linked list containing the elements as -4, -1, 5, 4, 10.
We strongly recommend solving this problem on your own before viewing its editorial. Do you still want to view the editorial?Yes