Учитывая корневой узел бинарного дерева поиска (BST) и значение.Вам нужно найти узел в BST, чтобы значение узла было равно заданному значению.Вернуть поддерево с этим узлом.Если такой узел не существует, вы должны вернуть NULL.
это то, что я получаю для моего кода:
class Solution:
def searchBST(self, root: TreeNode, val: int) -> TreeNode:
if root == None:
return None
elif root.val == val:
return root
elif root.val>val:
root = self.searchBST(root.left,val)
else:
root = self.searchBST(root.right,val)
, который, кажется, выводит None.но если заменить строку
root = self.searchBST(root.left,val)
на
return self.searchBST(root.left,val)
то же самое с root.right
, то это работает.Я не слишком хорош в рекурсии, но как мы можем это сделать
return self.searchBST(root.left,val)
Разве searchBST (..) не возвращает TreeNode, так что нам не нужно помещать триод в переменную root?