import java.util.*;
import javax.swing.plaf.synth.SynthOptionPaneUI;
public class LinkedList {
int size;
public class Node{
int data;
Node next;
Node(int data){
this.data=data;
this.next=null;
size++;
}
}
LinkedList(){
size=0;
}
Node head;
public void addFirst(int data){
Node newNode=new Node(data);
newNode.next=head;
head=newNode;
}
public void addLast(int data){
Node newNode=new Node(data);
if(head==null){
newNode.next=head;
head=newNode;
}else{
Node curNode=head;
while(curNode.next!=null){
curNode=curNode.next;
}
curNode.next=newNode;
}
}
public void removeFirst(){
int val=0;
if(head==null){
System.out.println("Linked List Empty, can't perform Deletion");
}else if(head.next==null){
val=head.data;
head=null;
System.out.println(val+" Deleted...");
size--;
}else{
val=head.data;
head=head.next;
System.out.println(val+" Deleted...");
size--;
}
}
public void removeLast(){
int val=0;
if(head==null){
System.out.println("Linked List Empty, can't perform Deletion");
}else if(head.next==null){
val=head.data;
head=null;
System.out.println(val+" Deleted...");
size--;
}else{
Node curNode=head;
Node lastNode=head.next;
while(lastNode.next!=null){
lastNode=lastNode.next;
curNode=curNode.next;
}
val=lastNode.data;
System.out.println(val+" Deleted...");
curNode.next=null;
size--;
}
}
public void reverseIterate(){
if(head==null || head.next==null){
return;
}else{
Node prevNode=head;
Node curNode=head.next;
while(curNode!=null){
Node nextNode=curNode.next;
curNode.next=prevNode;
prevNode=curNode;
curNode=nextNode;
}
head.next=null;
head=prevNode;
System.out.println("Linked List Reversed...");
}
}
public void sizeOfList(){
System.out.println("Size of List: "+size);
}
public void printList(){
Node curNode=head;
while(curNode!=null){
System.out.print(curNode.data+"-> ");
curNode=curNode.next;
}System.out.println("NULL");
}
public static void main(String args[]){
LinkedList list=new LinkedList();
Scanner sc=new Scanner(System.in);
int val=0;
while(true){
System.out.println("1:addFirst 2:addLast 3:removeFirst 4:removeLast 5:reverseIterate 6:sizeOfList 7:printList 8:End");
System.out.print("Select any Option: ");
int option=sc.nextInt();
if(option==8){
System.out.println("Thank You!!! ");
break;
}
if(option==1 || option==2){
System.out.print("Enter Value: ");
val=sc.nextInt();
}
switch(option){
case 1:
list.addFirst(val);
break;
case 2:
list.addLast(val);
break;
case 3:
list.removeFirst();
break;
case 4:
list.removeLast();
break;
case 5:
list.reverseIterate();
break;
case 6:
list.sizeOfList();
break;
case 7:
list.printList();
break;
default:
System.out.println("INVALID INPUT");
}
}
}
}
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter