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