Все связанные списки, которые мы создали до сих пор, представляют собой отдельные списки. Здесь мы создадим двусвязный список . Как следует из названия, узлы в двусвязном списке имеют ссылки на следующий и предыдущий узел в списке. Это позволяет нам перемещаться по списку в обоих направлениях, но для этого требуется больше памяти, потому что каждый узел должен содержать дополнительную ссылку на предыдущий узел в списке.
Мы предоставили объект Node и запустили наш DoublyLinkedList . Давайте добавим два метода в наш дважды связанный список, называемый add и remove . add метод должен добавить данный элемент в список , а remove метод должен удалить все вхождения данного элемента в списке. Будьте внимательны при обработке этих возможных случаев, например, для удаления первого или последнего элемента. Кроме того, удаление любого элемента в пустом списке должно возвращать значение null .