Untitled
user_6347851
plain_text
2 years ago
2.4 kB
6
Indexable
public class LinkedList {
public static class Node {
int data;
Node next;
public Node(int data) {
this.data = data;
this.next = null;
}
}
public static Node head;
public static Node tail;
public static int size;
public void addFirst(int data){
Node newNode = new Node(data);//constructor
size++;
if(head==null){
head=tail=newNode;
return;
}
newNode.next=head;//linking with existing head
head=newNode;//initializing new head
}
public void addLast(int data){
Node newnode=new Node(data);
size++;
if(head==null){
head=tail=newnode;
return;
}
tail.next=newnode;
tail=newnode;
}
public void addMiddle(int index ,int data){
Node newnode=new Node(data);
size++;
Node temp=head;
int i=0;
while (i<index-1){
temp=head.next;
i++;
}
newnode.next=temp.next;
temp.next=newnode;
}
public void removeFirst(){
if(size==1){
head=tail=null;
}
head=head.next;
return;
}
public void removeLast(){
if(size==1){
head=tail=null;
}
Node prev=head;
for (int i = 0; i < size-2; i++) {
prev=prev.next;
}
prev.next=null;
tail=prev;
return;
}
public static void printll(LinkedList ll){
Node temp=head;
while(temp!=null){
System.out.print(temp.data);
temp=temp.next;
}
System.out.println();
}
public static void main(String[] args) {
LinkedList ll=new LinkedList();
ll.addFirst(1);
ll.addFirst(2);
ll.addLast(3);
ll.addLast(4);
printll(ll);
ll.addMiddle(2,5);
printll(ll);
System.out.println(size);
ll.removeFirst();
printll(ll);
ll.removeLast();
printll(ll);
}
}
Editor is loading...
Leave a Comment