SUBTRACT

Given a singly linked list, modify the value of first half nodes such that :

  • 1st node’s new value = the last node’s value - first node’s current value
  • 2nd node’s new value = the second last node’s value - 2nd node’s current value,

and so on …

NOTE :
* If the length L of linked list is odd, then the first half implies at first floor(L/2) nodes. So, if L = 5, the first half refers to first 2 nodes.
* If the length L of linked list is even, then the first half implies at first L/2 nodes. So, if L = 4, the first half refers to first 2 nodes.

Example :

Given linked list 1 -> 2 -> 3 -> 4 -> 5,

You should return 4 -> 2 -> 3 -> 4 -> 5
as

for first node, 5 - 1 = 4
for second node, 4 - 2 = 2

Try to solve the problem using constant extra space.

Interview Code Editor
2125 successful submissions.
Click here to jump start your coding interview preparation