Как работает привязка узла к концу связанного списка? - PullRequest
0 голосов
/ 07 марта 2020

У меня проблемы не с кодом, а с визуализацией того, как он выполняет свою работу. Я знаю, что сначала у вас есть ваш список (скажем, список из трех элементов), а head указывает на первый элемент, верно? Тогда у вас будет другой указатель, скажем temp, и его temp->next = head, пока я его получаю, но именно здесь я начинаю его терять ... у вас будет проходить по списку, пока он не достигнет элемент с next переменной, равной NULL, и тогда у вас будет temp->next = new_node !! Например, как это работает? Все, что я вижу, это делает указатель на new_node и не делает ссылку на фактический список!

1 Ответ

1 голос
/ 07 марта 2020

Итак, вот ваши 3 элемента ...

----- ----- ----- | 1 | --->| 2 | --->| 3 |--->NULL ------ ------ ------ Стрелки сверху означают следующие указатели.

head указывает на элемент 1. А также вы начинаете с temp из элемента 1. Вы запускаете al oop и продолжаете делать temp = temp->next, пока temp->next не станет NULL. Таким образом, temp продолжает движение вправо от элемента 1 к элементу 3.

l oop разрывается, когда temp->next равен NULL, то есть, когда temp указывает на элемент 3.

Теперь в этот момент, когда вы делаете temp->next = new_node, указатель next элемента 3 начинает указывать new_node (указатель next элемента 3 больше не NULL). Этот new_node становится элементом 4.

...