I am trying to reverse a linked list in Java.
Here is my code.
class Node{
int value; Node next;
Node(int value){ this.value = value; }
}
class LinkedList{
Node head;
void push(int value){
Node new_node = new Node(value);
new_node.next = head;
head = new_node;
System.out.println("new head is"+head.value);
}
void reverseList(Node node){
Node iter = node;
Node prev = null;
while(iter!=null){
Node currentNext = iter.next;
iter.next = prev;
prev = iter;
iter = currentNext;
}
node = prev;
}
// To print the list referred by this node.
void printList(Node node){
Node iter = node;
while(iter!=null){
System.out.print(" "+iter.value);
iter = iter.next;
}
System.out.println("");
}
}
In main(),
LinkedList list = new LinkedList();
list.push(3);
list.push(2);
list.push(1);
list.printList();// linked list is 1->2->3
list.reverseList(list.head);
list.printList(list.head); // Output is 1
Why is the list not printing in the correct orde (3->2->1) after reversing the list?