Я построил BST слишком много слов, и я пытаюсь завершить свою функцию поиска, однако по какой-то причине, если я ищу элемент, который не существует в BST, моя программа будет аварийно завершать работу, однако доЯ могу сказать, что это не должно делать?
def bst_search(root, target):
if root.value == target or root is None:
print("Yes")
return root
elif target < root.value:
return bst_search(root.left, target)
elif target > root.value:
return bst_search(root.right, target)
else:
print("No")
Но когда я запускаю его в поисках элемента, которого нет в списке, я получаю эту ошибку:
AttributeError: 'NoneType' object has no attribute 'value'
Разве это не должно быть просто по умолчанию, иначе и автоматическипечатать "Нет"?Или программа просто ничего не передает во время рекурсивного вызова и бесится?