本题返回的是一个二叉树
因此我们只需要找到与val值相等的那个节点 然后再将这个节点进行返回就可以了
在本题解中我使用的是迭代法
class Solution:
def searchBST(self, root: Optional[TreeNode], val: int) -> Optional[TreeNode]:
self.result=[]
if root == None:
return None
temp = root
while temp:
if temp.val > val:
temp = temp.left
elif temp.val < val:
temp = temp.right
else:
break
return temp
拓展知识:当然 如果题中说要返回该节点的所有节点值就可以用下面的递归方式来解决
class Solution:
def searchBST(self, root: Optional[TreeNode], val: int) -> Optional[TreeNode]:
self.result=[]
if root == None:
return None
temp = root
while temp:
if temp.val > val:
temp = temp.left
elif temp.val < val:
temp = temp.right
else:
break
#return temp
#获得了与val相等的根节点
print(temp.val)
self.traval(temp)
return self.result
def traval(self,root):
if root == None:
return
self.result.append(root.val)
if root.left:
self.traval(root.left)
if root.right:
self.traval(root.right)