我已经构造了一个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'
不是也应该默认设置else并自动打印“否”吗?还是程序只是在递归调用和吓跑时什么都不给?