Node lastNode = last.prev;
lastNode.next = node;
node.prev = lastNode;
last.prev = node;
Это метод add(obj value) из линкедлиста в задании. Это код правильного решения.
В нем явно создаётся объект ластнод. Это же для наглядности?
Если я пишу last.prev.next вместо создания объекта ЛастНод, то ничего не меняется, верно?
newNode.next = last;
newNode.prev = last.prev;
last.prev.next = newNode;
last.prev = newNode;
Anonymous #3073846
33 уровень
Обязательно ли явно создавать объект last.prev?
Обсуждается
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
rman
6 января 2024, 11:30
Буду категоричен) Обязательно!
Понятный код лучше короткого/"элегантного"/оригинального.
0
hidden #3303140
6 января 2024, 08:46полезный
Маленькое замечание: в этой строке объект не создается, он и без того существует, как звено цепочки. Просто ссылка на него записывается в отдельную переменную. По существу ты прав, ты можешь сделать без сохранения ссылки в переменную lastNode. Но у сохранения есть два преимущества: во-первых, читается и понимается легче, а во-вторых при твоем подходе важен порядок связывания годов между собой, last.prev = newNode; надо обязательно делать последним. В подходе с переменной ты можешь связывать их в любом порядке, то есть меньше вероятность допустить ошибку.
+1