700. 二叉搜索树中的搜索

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def searchBST(self, root: Optional[TreeNode], val: int) -> Optional[TreeNode]:
# 搜索树特别适合用迭代法。
# while root!=None:
# if val > root.val: root = root.right
# elif val < root.val: root = root.left
# else: return root
# return None

# 递归法
if root==None or root.val==val:
return root
if root.val > val:
result = self.searchBST(root.left,val)
return result
elif root.val < val:
result = self.searchBST(root.right,val)
return result