Hashing and tries vertical binary tree

why it give error or how to debug it???
import java.util.*;

class VOPair {
int data;
int vl;
int hl;

    @Override
    public String toString() {
        return this.data + "";
    }
}

class VOComparator implements Comparator {

    @Override
    public int compare(VOPair o1, VOPair o2) {
       
        VOPair p1 = (VOPair)o1;
        VOPair p2 = (VOPair)o2;
	    return -1*(p1.hl - p2.hl);
    }

}

public class Tree {

class Node{
int data;
Node left;
Node right;

  Node(int data)
   {
	 this.data=data;
   }

}
private Node root;

public Tree(){
  this.root=construct();
  display(this.root);
  verticalOrder();
}

public Node construct()
   {
      int d=kb.nextInt();
	  Node nn=new Node(d);

	 LinkedList<Node> queue=new LinkedList<>();
      queue.addFirst(nn);

	  while(!queue.isEmpty())
	    {
          Node nr=queue.removeFirst();

		  int v1=kb.nextInt();
          
		  if(v1!=-1)
		  { Node lf=new Node(v1);
		   nr.left=lf;
		   queue.addLast(lf); }

		   else
		   nr.left=null;

		   int v2=kb.nextInt();

		   if(v2!=-1)
		  { Node ri=new Node(v2);
		   nr.right=ri;
		   queue.addLast(ri); }

		   else
		   nr.right=null;
		}
     
	 return nn;
   }

public void verticalOrder() {

    HashMap<Integer,ArrayList> map = new HashMap<>();

    verticalOrder(root, 0, 0, map);

    ArrayList<Integer> keys = new ArrayList<>(map.keySet());

    Collections.sort(keys); // [-2,-1,0,1,2]

    for (int key : keys) {
        ArrayList list = map.get(key);

        Collections.sort(list, new VOComparator());
        System.out.println(key + " -> " + list);
    }

    // System.out.println(map);

}

private void verticalOrder(Node node, int vLevel, int hLevel, HashMap<Integer,ArrayList> map) {

    if (node==null) 
        return;

    if (!map.containsKey(vLevel)) {
        map.put(vLevel, new ArrayList<>());
    }

    VOPair np = new VOPair();
    np.data = node.data;
    np.hl = hLevel;
    np.vl = vLevel;
    map.get(vLevel).add(np);

    verticalOrder(node.left, vLevel - 1, hLevel + 1, map);
    verticalOrder(node.right, vLevel + 1, hLevel + 1, map);

}
  public void display(Node nn)
     {   if(nn==null)
	        return;    

		 display(nn.left);
           System.out.print(nn.data);
		 display(nn.right);
	 } 

 static Scanner kb=new Scanner(System.in);	 
public static void main(String args[]) {
  int l=kb.nextInt();
  
  Tree tr=new Tree();
}

}

@abhishekg you did not specify the class type in comparator and u were printing in the wrong format
refer to this https://ide.codingblocks.com/s/211347