Linked List in Java



class Node{
 int data=0;
 Node next;
 Node(int data){
   this.data =data;
   this.next=null;
 }
 int value(){  
   return data; 
 }
 void show(){ 
   System.out.print(" (" + data + ")"); 
 }
}
The LinkList Class

public class LinkList { // an ordered list
 private Node start=null;
 void add(int data){
    if(start==null)
       start = new Node(data); // add as only node in list
    else
       insert(data); // insert in the order
 }
 void add(int data[]){
      for(int i=0; i < data.length ; i++)
          add(data[i]);
 }
 void show(){ 
      Node temp=start; 
      while(temp != null){
            temp.show();
            temp=temp.next;
      }
      System.out.println();
 }
 boolean remove(int data){
      Node temp=start,x;
      if(temp==null) {
         System.out.println("The list is empty/not exisitng");
         return false; 
      }
      if(temp.data == data){ // if first item 
         start = temp.next;
         temp.show();
         return true;
      }
      while(temp.next != null){
          if(temp.next.data == data){ 
             x=temp.next; //x=temp.next is the node to delete
             temp.next=x.next; // bypass x
             x.show();  
             x=null;  // remove x
             return true;
         }
         temp=temp.next;
      }
      System.out.print("\nItem not found : " + data);
      return false;
 }
 void remove(int data[]){ // remove an array of items
      for(int i=0; i < data.length ; i++)
          remove(data[i]);
 }

 private void insert(int data){
     Node t=start, node=new Node(data);
     if (t.value() > data){ // insert as first item
         node.next=t;
         start=node;
         return;
     }
    else{
     while(t.next != null){
         if(t.value()== data){ // check for duplicate
         System.out.println("duplicate ingnored : " + data);
         return;
     }
     if(t.next.value() > data){ 
        // if found a greater value insert before it 
        node.next=t.next;
        t.next=node;
        return;
     }
     t=t.next;
   }
   t.next=node; //set as the last item
  }
 }
}

The Driver Class - Main
public class Main {

 public static void main(String[] args) {
  LinkList ll=new LinkList();
     ll.add(2546);
     ll.add(777);
     ll.add(666);
     ll.add(66);
     ll.add(6);
     int xx[]={1,2,3,4,5,6,66,77,777,7,99,88,55,44,33,22};
     int yy[]={4,5,6,7,77};
     ll.add(xx);
     ll.show();
     ll.remove(xx);
     ll.remove(yy);
     ll.show();
 }
}
The Output

duplicate ingnored : 6
duplicate ingnored : 66
duplicate ingnored : 777
 (1)(2)(3)(4)(5)(6)(7)(22)(33)(44)(55)(66)(77)(88)(99)(666)(777)(2546)
 (1)(2)(3)(4)(5)(6)(66)(77)(777)(7)(99)(88)(55)(44)(33)(22)
Item not found : 4
Item not found : 5
Item not found : 6
Item not found : 7