Почему происходит сбой моей программы, если я ищу недостающий элемент BST? - PullRequest
0 голосов
/ 30 ноября 2018

Я построил 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'

Разве это не должно быть просто по умолчанию, иначе и автоматическипечатать "Нет"?Или программа просто ничего не передает во время рекурсивного вызова и бесится?

...