You are given the head of a linked list, write a program to swap each pair of adjacent nodes.

Problem Note

  • Linked List can be of even or odd size.
  • You shouldn't modify the values of nodes, rather swap the nodes itself

Example 1

Input: 10->20->30->40
Output: 20->10->40->30
Explanation: The pair of adjacent nodes having value 10 and 20 are swapped. Similarly, pair of adjacent nodes having value 30 and 40 are swapped.

Example 2

Input: 80->20->5->9->2
Output: 20->80->9->5->2
Explanation: The adjacent nodes are swapped till the last node having value 2. As there is no next node to it, it remains at the same position.

Example 3

Input: 1->2
Output: 2->1
Explanation: There is only pair of adjacent nodes and they are swapped together.