Думаю, причина в том, что в цикле while вы объявляете x в стеке.Затем, после окончания цикла while, переменная «уничтожается».Однако на следующей итерации x снова зарезервируется в стеке, используя то же самое место в стеке.
Обратите внимание, что вы не получите связанный список с допустимыми указателями.Вам нужно создать экземпляры Node в куче, используя оператор 'new'.
EDIT:
Если вы не хотите выделять память в куче, вы можете использоватьподход «Связанные списки с использованием массивов узлов» описан здесь .Однако недостатком является то, что вам необходимо заранее знать максимальное количество узлов.