2015-12-27 3 views
3

Я написал код, который должен удалить узел в отдельном списке. Но он вообще не работает, т. Е. Он печатает исходный список, не снимая ничего. Что я сделал не так ? Предположим, что список не пуст!Удаление узла из отдельного списка

public void removeNode(int data){ 
     Node current = head; 
     Node previous = null; 
     while(current != null && current.data != data){ 
      previous = current; 
      current = current.next; 
     } 
     previous = current.next; 
    } 

ответ

3

Вам необходимо установить previous.next в current.next, когда вы найдете узел.

1

Просто попробуйте правильно установить указатели. Нравится:

public void removeNode(int data) { 
    Node current = head; 
    Node previous = null; 
    while (current != null && current.data != data) { 
     previous = current; 
     current = current.next; 
    } 

    if (current != null) { 
     previous.next = current.next 
    } 
} 
Смежные вопросы