Есть ли у кого маленькая шпаргалка по перебору связного списка?

В каких случаях надо использовать условие while(list != null) и while(list.next != null). Что бы на собеседованиях быть уверенным в условии.
  • Вопрос задан
  • 117 просмотров
Решения вопроса 1
BorLaze
@BorLaze
Java developer
В каких случаях надо использовать условие while(list != null) и while(list.next != null)

Смотря что нужно. Можно использовать и то, и то.

/* предполагая, что где-то в цикле есть list = list.next */
Условие while(list != null) означает "двигайся по списку, пока не выйдешь за последний элемент".
Условие while(list.next != null) означает "двигайся по списку, пока не дойдешь до последнего элемента".

Соответственно, в зависимости от задачи надо выбрать или одно, или другое. Сказать однозначно "делай так, а не иначе" просто невозможно.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
zagayevskiy
@zagayevskiy
Android developer at Yandex
Собеседование надо проходить, думая головой, а не запоминая какие-то бредовые шаблоны. Цель заебывания тебя этими списками не в том, чтобы узнать, что ты помнишь шаблоны , а в том, чтобы посмотреть, как ты "крутишь" код в голове.
Ответ написан
Комментировать
@res2001
Developer, ex-admin
Обычно
list.next == null - значит текущий элемент (list) - последний в списке
list == null - нет никакого списка, возможно ошибка

Оба варианта могут употребляться в одной и той же реализации в разных ситуациях.
Кроме того могут быть нюансы и list.next == null в данной конкретной реализации списка является ошибкой и т.п.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы