The program compiles but is not run right can somebody help plz? There are two parts a class and a main.

public class LinkedList56 {
   
       private class node{
         int data;
         node next;
      
      }
   //create an empty linked list
       public LinkedList56(){
         first = null;
      }
   //return true if the list is empty, otherwise return false
       public boolean empty(){
         if(first == null){
         
         
            return true;	
         }
         else 
            return false;
      }
   //insert a value x at the end
       public void InsertAtEnd(LinkedList56 x, int a){
		   //create new node
         node q = new node();
         node p = new node();
         q.data = a;
         q.next = null;
			//empty list
         if(first == null){
            first = q;
         
         }
			//list is not empty
         else 
            p = first;
         while(p.next != null){
            p = p.next;
         
         }
         p.next = q;
      }
   //if value x is in the list, romove x
       public void Delete(int a){
         node pointer = new node();
         node doublepointer = new node();	
      
         pointer = first;
         doublepointer = pointer.next;
      
         while(doublepointer.data != a){
            pointer = doublepointer.next;
         //preptr = preptr.next;
            doublepointer = doublepointer.next;
         }
         pointer = doublepointer.next;
      }
   
   
   //Display the data values in the linked list	
       public void Display(){
         System.out.println();
      }
   //pointer to the first node in the list
      private node first;
   }

--------------------------------------MAIN----------------------------------

public class Program2 {
public static void main(String[] args)throws Exception{

LinkedList56 x = new LinkedList56();

for(int a = 1; a < 10; a++){
if((a%2 == 0)){
	x.InsertAtEnd(x,a);

x.Display();
	
x.Delete(2);
	System.out.println("list after deleting 2:");
	x.Display();
	x.Delete(6);
	System.out.println("list after deleting 6:");
	x.Display();
	if(!x.empty()){
		System.out.println("List is not empty");
	}
}
}
}
}

its the delete function, something is not right, line 44...

Thought it would be easier if we all chipped in and helped you out but it would beat the actual purpose of learning things.

If you are still in the stages of developing your programs in a text editor, litter your program with log statements at appropriate places and find the point wherein the program starts behaving in an unexpected manner. If using an IDE like Eclipse, debug your application and inspect the variables at run time. Guesswork should not be the approach here...

This question has already been answered. Start a new discussion instead.