# 700. Search in a Binary Search Tree 二叉搜索树中的搜索

@TOC

## # 题目描述

Given the root node of a binary search tree (BST) and a value. You need to find the node in the BST that the node's value equals the given value. Return the subtree rooted with that node. If such node doesn't exist, you should return NULL.

For example,

Given the tree:

``````    4
/ \
2   7
/ \
1   3

And the value to search: 2
``````

You should return this subtree:

``````  2
/ \
1   3
``````

In the example above, if we want to search the value `5`, since there is no node with value 5, we should return `NULL`.

## # 解题方法

### # 递归

``````# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution:
def searchBST(self, root, val):
"""
:type root: TreeNode
:type val: int
:rtype: TreeNode
"""
if not root:
return None
if root.val == val:
return root
elif root.val < val:
return self.searchBST(root.right, val)
else:
return self.searchBST(root.left, val)
``````

## # 日期

2018 年 7 月 12 日 ———— 天阴阴地潮潮，已经连着两天这样了 2018 年 11 月 6 日 —— 腰酸背痛要废了