Sobes.tech
Junior — Middle+
56

Удаление узла и вставка нового элемента в двусвязный список

Условие задачи

Необходимо реализовать функции удаления и вставки узлов в структуру двусвязного списка.

Требования:

  • Удалять узел, исходя из переданного значения.
  • Вставлять новый узел сразу после указанного узла.

Особое внимание следует уделить граничным ситуациям:

  • Удаление может происходить в начале, в конце или в середине списка.
  • Вставка должна корректно работать, когда список пуст, когда необходимо добавить элемент в начало или в конец.
  • После каждой операции необходимо правильно обновлять ссылки next и prev у соседних узлов.
class Node {
    private Integer value;
    private Node next;
    private Node prev;
}

class LinkedList {
    private Node head;
    private Node tail;

    public void remove(Integer value) {
        // TODO
    }

    public void add(Integer prev, Integer next, Integer value) {
        // TODO
    }
}