package com.interview.linklist;
/**
* http://www.geeksforgeeks.org/given-linked-list-reverse-alternate-nodes-append-end/
* Test case
* Even and odd number of nodes
*/
public class ReverseAlternateNodeAndAppendAtEnd {
public void act(Node head){
Node result = null;
LinkList ll = new LinkList();
while(head != null && head.next != null){
Node temp = head.next;
head.next = head.next.next;
temp.next = null;
result = ll.addAtFront(temp,result);
if(head.next == null){
break;
}
head = head.next;
}
head.next = result;
}
public static void main(String args[]){
LinkList ll = new LinkList();
Node head = null;
head = ll.addNode(1, head);
head = ll.addNode(2, head);
head = ll.addNode(3, head);
head = ll.addNode(4, head);
head = ll.addNode(5, head);
head = ll.addNode(6, head);
ReverseAlternateNodeAndAppendAtEnd ran = new ReverseAlternateNodeAndAppendAtEnd();
ran.act(head);
ll.printList(head);
}
}