Конечно, два фрагмента дают различный вывод.
В первом фрагменте вы вставляете node
перед n
, и вы заставляете n.reference
обращаться к node
, создавая круговой списокдва узла.
Предположим, что до объявления temp
, n
ссылается на узел X и n.reference
ссылается на узел Y. node
ссылается на узел NEW.
Давайте проиллюстрируемвыполняемые вами задания:
X -> Y
^
|
n==temp
X -> NEW
^ ^
| |
n==temp node
X -> NEW -> X
^ ^
| |
n==temp node
Следовательно node.reference.reference == node
.У вас есть цикл.
Во втором фрагменте вы вставляете node
между n
и Node
после него.Вероятно, это правильная реализация.
Давайте снова проиллюстрируем выполняемые вами назначения:
X -> Y
^ ^
| |
n temp
X -> NEW Y
^ ^ ^
| | |
n node temp
X -> NEW -> Y
^ ^ ^
| | |
n node temp
Вы вставили НОВЫЙ узел между узлами X и Y.