class node{
int data;
node next;
node(int data){
this.data=data;
}
}
class reverseLinkedList{
node head;
node tail;
node temp;
//Constructor
reverseLinkedList(){
head=null;
}
//Reverse Linked List Using Traverse And Add First To New List And Return a List
public reverseLinkedList reverse(node head){
reverseLinkedList r2=new reverseLinkedList();
while(head!=null){
r2.addFirst(head.data);
head=head.next;
}
return r2;
}
//Add First Position
public void addFirst(int data){
if(head==null){
head=new node(data);
}
else{
temp=new node(data);
temp.next=head;
head=temp;
}
}
//Add Node To Last Element
public void addNode(int data){
if(head==null){
head=new node(data);
tail=head;
}
else
{
tail.next=new node(data);
tail=tail.next;
}
}
//Traverse a Linked List
public void traverse(node head){
while(head!=null){
System.out.println(head.data);
head=head.next;
}
}
public static void main(String[] args){
reverseLinkedList r=new reverseLinkedList();
r.addNode(5);
r.addNode(10);
r.addNode(15);
r.addNode(20);
r.addNode(25);
r.addNode(30);
r.addNode(35);
r.addNode(40);
r.traverse(r.head);
System.out.println("Reversed!!!");
r.traverse(r.reverse(r.head).head);
}
}
Comments
Post a Comment