В чем разница между этими утверждениями?Как выбрать правильные, если утверждения в связанном списке?
if (current.next!=null)
if (current!=null)
В чем разница между этими утверждениями?Как выбрать правильные, если утверждения в связанном списке?
if (current.next!=null)
if (current!=null)
Я предполагаю, что вы итерацию список, и вы хотите знать, когда вы в конце связанного списка. Если у Вас есть следующие:
if (current.next!=null){
current = next
}
, то это не имеет значения. они оба хороши. учитывая, что current
никогда не будет null
.
Рассмотрим следующий Linked List:
HEAD ---> ["value2" | -]--> ["value3" | -]--> ["last_value" | null]
Допуская current
указывает на "Value3":
HEAD ---> ["value2" | -]--> ["value3" | -]--> ["last_value" | null]
↑
затем current.next != null
является true
, так как current.next
на самом деле "следующий" узел.
Теперь давайте предположим, что current
переехал в «last_value», теперь мы будем иметь:
HEAD ---> ["value2" | -]--> ["value3" | -]--> ["last_value" | null]
↑
Теперь current != null
является true
тогда current.next
является null
(что является признаком того, что нет никаких больше узлов).
Так что «Правильно выбрать», если утверждение не является хорошим вопросом, поскольку это действительно зависит от того, что вы хотите проверить, это две разные проверки.
первый оператор проверяет, есть ли у вас следующий элемент или нет, второй оператор проверяет, является ли текущий элемент нулевым! – Lrrr