Нет, они не совпадают, потому что значение tail
в первой версии является старым значением, а значение tail
во второй версии является новым значением, то есть новым Node
. .
Этот код действительно имеет смысл, только если список пуст во время выполнения кода, иначе вы не захотите, чтобы новый узел называл себя next
. В этом случае старое значение tail
равно нулю, что означает, что первая версия совпадает с:
tail = new Node(s, null);
Это делает очевидным, что две версии не совпадают.