Первый пример завершается, когда temp == null
, что означает, что temp
будет иметь значение null после цикла и будет бесполезно для вас, хотя для обработки элементов в списке это совершенно правильный подход.
Второй пример остановится, когда temp.next == null
, но сам temp на самом деле имеет значение, в этом случае это будет ссылка на конец списка, что гораздо полезнее, если вы хотите добавить что-то еще к список также.
Как указали некоторые другие, второе вызовет исключение нулевой разыменования, если temp равно null, но это будет проблемой только в том случае, если temp был нулевым до обработки цикла, поэтому это можно предотвратить с помощью условного выражения.