Предположим, у вас есть список из одного узла [HEAD]->null
. Теперь будут выполнены следующие строки:
currentNode = head.next; // => null
while(currentNode.next != null && !newCarEntry.isNewerThan(currentNode.carItem) ){
...
}
Таким образом, при попытке добавить второй узел вы получите исключение нулевого указателя (доступ к currentNode.next
).
После редактирования : теперь исключение нулевого указателя больше не будет появляться. Вместо этого происходит следующее:
currentNode = head.next; // => null
while(currentNode != null && ...) { // => not entering loop
...
}
newNode.next = currentNode; // => i.e. null
newNode = currentNode; // => i.e. null
Вы изменяете только локальную переменную newNode
, но не список или заголовок.