input: Write a python function to determine if two binary trees are structurally identical and have the same node values.
  assert are_similar(TreeNode(1), TreeNode(1)) == True
  assert are_similar(TreeNode(1), TreeNode(2)) == False
  assert are_similar(None, None) == True
  assert are_similar(TreeNode(1), None) == False
output: def are_similar(tree1, tree2):
      if tree1 is None and tree2 is None:
          return True
      if tree1 is None or tree2 is None:
          return False
      return (tree1.val == tree2.val and
              are_similar(tree1.left, tree2.left) and
              are_similar(tree1.right, tree2.right))