Сопряжение в вашем коде текущее устанавливается с помощью переменной self.head, которая была передана конструктору. Поэтому при вызове функции, поскольку она может быть вызвана только из экземпляра, она всегда будет установлена. В вашем примере они ожидают, что head будет связанным списком.
Итак, вкратце. Ваша интерпретация полностью неверна. current всегда будет установлен, и поскольку мы ожидаем, что текущий список будет связанным списком, он будет иметь свойство next. При вызове current.next вы получите возвращаемое значение. Если есть другой элемент, он go перейдет к следующему, если получено None (No Element), он установит следующий элемент.
Единственное, что не имеет смысла, это проверка того, установлен ли self.head как функция принадлежит экземпляру, и единственный конструктор требует установки head. Возможно, лучше проверьте Тип self.head.