input: Write a function to check if two binary trees are similar by comparing their structures and node values. If both trees are identical in structure and all corresponding node values are the same, return True. Otherwise, return False. If either or both of the trees are empty, return True.
  assert are_similar(None, None)==True
  assert are_similar(TreeNode(1), None)==False
  assert are_similar(None, TreeNode(1))==False
  root1 = TreeNode(1)
  root1.left = TreeNode(2)
  root1.right = TreeNode(3)
  root2 = TreeNode(1)
  root2.left = TreeNode(2)
  root2.right = TreeNode(3)
  assert are_similar(root1, root2)==True
  root3 = TreeNode(1)
  root3.left = TreeNode(3)
  root3.right = TreeNode(2)
  assert are_similar(root1, root3)==False
output: def are_similar(root1, root2):
      if root1 is None and root2 is None:
          return True
      if root1 is None or root2 is None:
          return False
      if root1.val != root2.val:
          return False
      return are_similar(root1.left, root2.left) and are_similar(root1.right, root2.right)