При удалении узла, почему нет необходимости устанавливать этот узел рядом с нулем? - PullRequest
1 голос
/ 22 июня 2019

Я заметил, что много кода в сети для функции удаления узла или удаления отдельного узла LinkedList просто устанавливает предыдущий узел рядом со следующим из удаляемых узлов. Но не является ли это неполным удалением, потому что удаленный узел все еще указывает на то, что он следующий?

Например

A-> B-> C

Если вы удалите B, вы должны указать A на C. Но если вы не заставите B указать на null, разве B все еще не существует, потому что он указывает на C?

Точно так же для двусвязного списка в Java, если вы удаляете узел, не нужно ли вам следить за тем, чтобы узел больше не указывал ни на что, чтобы он действительно был удален?

Ответы [ 3 ]

5 голосов
/ 22 июня 2019

, если вы не сделаете B равным нулю, B все еще не существует, потому что он указывает на C?

Нет.Причина в том, что, поскольку нет никакого упоминания о B, оно будет собрано.Неважно, если он (B) по-прежнему указывает на что-то.

Как мудро, для двусвязного списка в Java, если вы удаляете узел, вам не нужно было бы убедиться, чтоузел больше не указывает ни на что, чтобы он действительно был удален?

Принцип тот же.Что изменится, так это то, что вам нужно изменить две ссылки: предыдущий узел удаляемого узла (чтобы он указывал на следующий из удаляемых узлов) и следующий удаляемый узел (делая его указателем на предыдущий узел).будучи удаленным).

Когда нет ссылок на удаляемый узел, это будет собрано.

В общем , когда нет ссылки на указательдля некоторого объекта это будет собрано в некоторый момент.


Вот очень похожий пост, который может быть вам полезен: Сборщик мусора в java - установить объект null

0 голосов
/ 22 июня 2019

Нет. Это будет сборщик мусора. Недоступные объекты, на которые больше не ссылается какая-либо часть программы, будут очищаться сборщиком мусора в java. Сборщик мусора освобождает кучу памяти, уничтожая недоступные объекты.

0 голосов
/ 22 июня 2019

Полагаю, вы говорите о джава LinkedList<>.Это, вероятно, потому что сборщик мусора получит это.

...