I am creating a tree structure but problem is that on entering display it doesn't display anything. Maybe because the root remains null here, I can't understand why.
public class Tree extends LLQueue {
int data12;
tree left;
tree right;
@Override
public int getdata(){
    return data12;
}
@Override
public void setdata(int data){
    this.data12 =data;
}
public tree getleft(){
    return left;
}
public void setleft(tree left){
    this.left=left;
}
public tree getright(){
    return right;
}
public void setright(tree right){
    this.right =right;
}
public static void main(String args[]) throws IOException, EmptyQueueException{
    BufferedReader br =new BufferedReader(new InputStreamReader(System.in));
    System.out.println("enter option ");
    int n =Integer.parseInt(br.readLine());
     tree root =null;
    do{
        System.out.println("\nQueue Operations");
        System.out.println("1. insert");
        System.out.println("2. display");
        int choice = Integer.parseInt(br.readLine());
        switch(choice){
            case 1:
                System.out.println("insert here");
                int input =Integer.parseInt(br.readLine());
                insertintree(root,input);
                break;
            case 2:
                System.out.println("result is");
                preorder(root);
        }
    }while(n!=0);
}
private static void insertintree(tree root, int input) throws EmptyQueueException {
    LLQueue Q =new LLQueue();
    tree temp = null;
    int temp1;
    tree newnode =new tree();
    newnode.setdata(input);
    newnode.setleft(null);
    newnode.setright(null);
 if(newnode ==null){
     System.out.println("memory error");
     return;
 }
 if(root ==null){
     root =newnode;
     return;
 }
 Q.enQueue(root.getdata());
 while(!Q.isEmpty()){
         temp1=Q.deQueue();
         temp.setdata(temp1);
         if(temp.getleft()!=null){
          tree temp2 =temp.getleft();   
         Q.enQueue(temp2.getdata());
         }
         else 
         {
             temp.setleft(newnode);
             Q.deQueue();
             return;
         }
           if(temp.getright()!=null){
          tree temp2 =temp.getright();   
         Q.enQueue(temp2.getdata());
         }
         else 
         {
             temp.setright(newnode);
             Q.deQueue();
             return;
         }
 }
 Q.deQueue();
}
private static void preorder(tree root) {
    if(root!=null){
        System.out.println(root.getdata());
        preorder(root.getleft());
        preorder(root.getright());
    }
}
}
 
     
    