Monday 26 August 2013

Reverse a linked list in java


Reverse a linked list in java


//reverse linked list iteratively
import java.io.*;
class Node{
Node next = null;
int data;

public Node(int d){
data = d;
}

void appendToTail(int d){
Node end = new Node(d);
Node n = this;
while(n.next!=null){
n = n.next;

}
n.next = end;
}

void display(){
Node n = this;
while(n!=null){
System.out.println(""+n.data);
n=n.next;
}

}
Node reverse(Node head){
Node previous = null,current = head,forward;
while(current!=null){
forward = current.next;
current.next = previous;
previous = current;
current = forward;

}
return previous;
}
}
class reversell{
public static void main(String args[]){
Node mynode = new Node(10);
mynode.appendToTail(15);
mynode.appendToTail(25);
mynode.appendToTail(5);
mynode.appendToTail(35);
mynode.appendToTail(45);
mynode.appendToTail(55);
mynode.display();
   Node temp = mynode.reverse(mynode);
mynode = temp;
System.out.println("after reversing");
mynode.display();


}

}

No comments:

Post a Comment