2014-11-18 6 views
0

В LinkedList мы обычно назначаем нулевое значение последнему узлу, а также используем это условие для проверки последнего узла.Связанный список NullPointerException Java

Я проверяю последний узел с тем же условием, либо его «следующий» узел имеет значение null, либо нет. Но я не могу обрабатывать NullPointerException, когда получаю нулевое значение методом getNext.

while(lastNode.getNext() != null) 
{ 
lastNode= lastNode.getNext(); 
} 
+0

Вы уверены, что этот кусок кода бросает исключение NullPointerException? –

+1

Можете ли вы вставить код для getNext()? – elefont

+0

@elephont что-то вроде 'public Node getNext() {return next; } '- это не проблема. –

ответ

4

Это будет бросать NullPointerException если lastNode уже null при входе в цикл. Добавьте чек для этого, и он должен работать.

while(lastNode != null && lastNode.getNext() != null){ 
    lastNode = lastNode.getNext(); 
} 
1

Я предполагаю, что это обычная реализация LinkedList; java.util.LinkedList не имеет метода getNext().

Это говорит, что вы хотите:

while (current != null) { 
    past = current; 
    current = current.getNext(); 
} 

return past; 

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