input: Write a python function to check if a value exists in a binary search tree.
  assert BST().search(10) == False
  tree = BST()
  tree.insert(5)
  tree.insert(3)
  tree.insert(7)
  tree.insert(2)
  tree.insert(4)
  tree.insert(6)
  tree.insert(8)
  assert tree.search(4) == True
  assert tree.search(9) == False
output: class Node:
      def __init__(self, key):
          self.left = None
          self.right = None
          self.val = key
  
  class BST:
      def __init__(self):
          self.root = None
  
      def insert(self, key):
          if self.root is None:
              self.root = Node(key)
          else:
              self._insert(self.root, key)
  
      def _insert(self, root, key):
          if key < root.val:
              if root.left is None:
                  root.left = Node(key)
              else:
                  self._insert(root.left, key)
          else:
              if root.right is None:
                  root.right = Node(key)
              else:
                  self._insert(root.right, key)
  
      def search(self, key):
          return self._search(self.root, key)
  
      def _search(self, root, key):
          if root is None:
              return False
          if root.val == key:
              return True
          elif key < root.val:
              return self._search(root.left, key)
          else:
              return self._search(root.right, key)