#data-structures #python-3.6
#структуры данных #python-3.6
Вопрос:
Этот код предназначен для удаления узла из заданной позиции в связанном списке.
Почему мы должны помещать return head в конец?
def deleteNode(head, position):
if position == 0:
return head.next
else:
curr = head
for _ in range(position):
prev=curr
curr = curr.next
prev.next=curr.next
return head
Комментарии:
1. В случае
position == 0
, когда функция фактически не вносит никаких изменений в список; он просто возвращает второй узел и позволяет пользователю использовать это возвращаемое значение для изменения своего списка. Таким образом, пользователь, вероятно, собирается писатьmylist = deleteNode(mylist)
. Чтобы это сработало, вам нужно вернуть первый узел списка даже в том случае, когда вы фактически удалили узел из списка.
Ответ №1:
Потому что вам нужно вернуть список функции, которая вызвала эту функцию, чтобы отслеживать ее. head
это ссылка на начало списка, поэтому это способ вернуть список туда, где он был.