# Data Structures | Linked List | Question 8

The following  function takes a single-linked list of integers as a parameter and rearranges the elements of the list. The function is called with the list containing the integers 1, 2, 3, 4, 5, 6, 7 in the given order. What will be the contents of the list after the function completes execution?

## Java

 `class` `Node {` `    ``int` `value;` `    ``Node next;` `}`   `void` `rearrange(Node list) {` `    ``Node p, q;` `    ``int` `temp;` `    ``if` `(list == ``null` `|| list.next == ``null``) {` `        ``return``;` `    ``}` `    ``p = list;` `    ``q = list.next;` `    ``while` `(q != ``null``) {` `        ``temp = p.value;` `        ``p.value = q.value;` `        ``q.value = temp;` `        ``p = q.next;` `        ``q = p != ``null` `? p.next : ``null``;` `    ``}` `}`

(A)

1,2,3,4,5,6,7

(B)

2,1,4,3,6,5,7

(C)

1,3,2,5,4,7,6

(D)

2,3,4,5,6,7,1

Explanation:

The function rearrange() exchanges data of every node with its next node. It starts exchanging data from the first node itself.
For eg. 3,5,7,9,11