input: Write a python function to perform Breadth-First Search (BFS) on a binary tree to find a specific item.
  assert BFS(TreeNode(1, TreeNode(2), TreeNode(3)), 2) == 2
  assert BFS(TreeNode(1, TreeNode(2), TreeNode(3)), 3) == 3
  assert BFS(TreeNode(1, TreeNode(2, TreeNode(4)), TreeNode(3)), 4) == 4
output: def BFS(root, target):
      from collections import deque
  
      if not root:
          return None
  
      queue = deque([root])
  
      while queue:
          node = queue.popleft()
          if node.val == target:
              return node.val
          if node.left:
              queue.append(node.left)
          if node.right:
              queue.append(node.right)
  
      return None
  
  class TreeNode:
      def __init__(self, val=0, left=None, right=None):
          self.val = val
          self.left = left
          self.right = right