Вопрос в том, почему условие завершения цикла никогда не достигается?
Является ли ваш список двусвязным списком, последний элемент соединяется с первым элементом?Будет ли getNext()
когда-либо отвечать null?
Кроме того, в цикле, как написано, есть проблемы.Смотрите исправленный код ниже.Проблема завершения цикла, вероятно, не устранена этим обновлением.
public T getSmallest() throws EmptyListException {
if ( isEmpty() ) {
throw new EmptyListException("List is empty");
}
DLNode<T> currentNode = front;
int minValue = currentNode.getValue();
DLNode<T> minNode = currentNode;
while ( (currentNode = currentNode.getNext()) != null ) {
int nextValue = currentNode.getValue();
if ( nextValue < minValue ) {
minNode = currentNode;
minValue = nextValue;
}
}
return minNode.getData();
}