Extend the SinglyLinkedList.java to a doubly linked list (DoublyLinkedList class). Use class inheritance to avoid unnecessary duplication of code. Write a method dllIterator( ), which extends the operations done by SLLIterator and adds methods hasPrev(), prev(), and add(x). The add method of the iterator should insert x before the element that will be returned by a call to next().