Удаление узла из двойного связанного списка в Java - PullRequest
1 голос
/ 10 января 2012

Здравствуйте, у меня настроен двойной связанный список, и у меня работает поиск для него и всего такого, я просто хочу удалить из него тоже.

Для моего поиска у меня есть:

public void firstNameSearch(String name)
{
    Node u = header;
    while (u != null && u.list() != name )
    {
        System.out.println("Searching List...");
            u = u.getNext();
    }
    if (u.list() == name)
    {
        // what do I need to put here to delete it

    } 
}

Я просматривал сообщения о переполнении стека, но те, что я нашел, были в C, так что это не очень помогло, я понимаю концепцию, как заставить его удалить узел, просто не могувключите его в работу.

Заранее спасибо.

1 Ответ

1 голос
/ 10 января 2012

Это очень простая операция. Я предполагаю, что существует метод set / getPrevious () в виде двойного связанного списка.

[previous]<==>[u]<==>[next]

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

if (u.list() == name)
    {
        Node pre = u.getPrevious();
        Node next= u.getNext();

        //Connect next node and previous node
        if(pre != null){
          next.setPrevious(pre);
        }else{
         header=next; 
        }

     //Connect previous node and next node
        if(next != null){
          pre.setNext(next);
        }else{
          pre.setNext(null); 
        }




    } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...