Добавление в связанные списки - PullRequest
0 голосов
/ 05 августа 2020

Repl: https://repl.it/@Stylebender / LinkedList # index. js

Итак, я знаю, что код правильный, но мне просто любопытно, как работает строка 21 в отношении append method().

Если мы объявим, что указатель (this.tail.next) должен указывать на newNode, this.head.next не должен каждый раз ссылаться на один newNode, чтобы this.head.next всегда был === { value: X, next: null } из последнего добавляемого newNode.

Я знаю, что это явно неправильно и явно не так, поскольку, когда вы запускаете ответ и начинаете вызывать метод добавления несколько раз, вы получаете все больше и больше следующее значение.

Думаю, мой вопрос в том, почему newNode в форме { value: X, next: null } просто не перезаписывает свойство head каждый раз, когда мы вызываем метод append, поскольку это не то, что мы говорите программе делать? (Хотя я знаю, что это явно неверно)

1 Ответ

0 голосов
/ 05 августа 2020

Заголовок связанного списка всегда будет указывать на один и тот же узел. Когда добавляются новые узлы, они добавляются в конец, становясь хвостом, голова фактически не меняется. В вашем случае, когда добавляется первый узел, изменяется только заголовок, потому что он больше не указывает на нуль, он указывает на только что добавленный новый узел. Однако его ценность не меняется. Любые последующие добавленные узлы прикрепляются к концу списка. Таким образом, когда добавляется третий узел, второй узел изменяется и указывает на третий узел.

...