Похоже, вам нужно прочитать имя человека на узле в цикле, а не читать по имени, а затем не назначать эту переменную снова.
Вы также должны проверить, является ли текущий узел нулевым, а не следующий. Если вы проверите следующий, вы пропустите фамилию в списке.
Также убедитесь, что перемещение указателя в списке выполняется за пределами if, поскольку мы хотим проверить следующий узел независимо от того, какое имя имело место.
Помимо логики, похоже, вам немного не по себе из-за Java. Чтобы очистить ваш пример, вы можете использовать java-способность для делайера и присваивать значения в одну строку.
Кроме того, вместо выполнения подстроки и сравнения подстроки в строке Java есть метод startWith, который также должен выполнить свою задачу. Отличная работа!
public void findSameStartingLetter( BigNode front, String letter )
{
BigNode curr = front;
while( curr != null )
{
String name = curr.dataitems;
if( name.startsWith( letter ) )
{
System.out.println( name );
}
curr = curr.next;
}
}