Skip to main content

Reversed Linked List- Using Header Of Linked LIst

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;
}
}


    //Main Function
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

Popular posts from this blog

Class is a collection of similar objects. Which have common properties

Class is a collection of similar objects. Which have common properties. Syntax class class_name {        //member functions and variables. } How to create a objects for class class_name c=new class_name; We can access the member variable and member methods using dot operator. c.member_function(); Eg : class bike { void fun() { System.out.println("member method"); } public static void main(String[] args) { bike B=new bike(); B.fun(); } } output member method

Linked List - Data Structure Basic With Example Java

//linked list /*     Linked List is a Linear Data Structure.      Drawback of Array Is continues Block Of Memory. Linked Is Used To Allocate the Different Memory Location. Each node Contains Data And Pointer. Header Is Used To Denote The First Node Of Linked List. Tail Is Used To Denote the Last Node of The Linked List. 1.Singly Linked List Each Node as Data And pointer To The Next Node. [ data(header) | pointer of next]->[ data | pointer of next]->[ data | pointer of next]->[ data | null]; 2.doubly Linked List Each Node as Data And pointer To The Next Node and prev Node. [ data(header) | pointer of next]<->[pointer to prev|data | pointer of next]<->[pointer to prev|data | pointer of next]<->[pointer to prev|data | null]; 3.Circle Linked List [ data(header) | pointer of next]->[ data | pointer of next]->[ data | pointer of next]->[ data | null]-->header */ class...