using
System;
public
class
LinkedList {
Node head;
public
class
Node {
public
int
data;
public
Node next;
public
Node(
int
item)
{
data = item;
next =
null
;
}
}
void
rearrange(Node odd)
{
if
(odd ==
null
|| odd.next ==
null
|| odd.next.next ==
null
) {
return
;
}
Node even = odd.next;
odd.next = odd.next.next;
odd = odd.next;
even.next =
null
;
while
(odd.next !=
null
) {
Node temp = odd.next.next;
odd.next.next = even;
even = odd.next;
odd.next = temp;
if
(temp !=
null
) {
odd = temp;
}
}
odd.next = even;
}
void
printList(Node node)
{
while
(node !=
null
) {
Console.Write(node.data +
" "
);
node = node.next;
}
}
public
static
void
Main()
{
LinkedList list =
new
LinkedList();
list.head =
new
Node(1);
list.head.next =
new
Node(2);
list.head.next.next =
new
Node(3);
list.head.next.next.next =
new
Node(4);
list.head.next.next.next.next =
new
Node(5);
list.head.next.next.next.next.next =
new
Node(6);
list.head.next.next.next.next.next.next =
new
Node(7);
Console.WriteLine(
"Linked list before calling rearrange : "
);
list.printList(list.head);
Console.WriteLine(
""
);
list.rearrange(list.head);
Console.WriteLine(
"Linked list after calling rearrange : "
);
list.printList(list.head);
}
}