public void insert(int d) {

    if (head.getData() > d) // Case 1: Insertion before head
    {
      head = new Node2(d, head);
      head.getNext().setPrevios(head);
    } else {
      Node2 current = head;
      while (current != null) {
        if (current.getData() < d) {
          current = current.getNext();
        } else // Case 2: Insertion into middle of list
        {
          current.getPrevios().setNext(new Node2(d, current, current.getPrevios()));
          current.setPrevios(current.getPrevios().getNext());
          break;
        }
        if (current == null) // Case 3: insert at end
        {
          last.setNext(new Node2(d, null, last));
          last = last.getNext();
        }
      }
    }
  }
  public String toString() {
    String s = "";
    Node2 current = head;
    while (current != null) {
      s = s + current.getData() + " ";
      current = current.getNext();
    }

    return s;
  }
 public Node2 find(int data) {
   Node2 current = head;
   while (current != null) {
     if (current.getData() == data) {
       break;
     } else {
       current = current.getNext();
     }
   }
   return current;
 }