input: def are_similar(root1, root2):
      """
      This function checks if two binary trees are similar. Two trees are considered
      similar if they have the same structure and the same values at the corresponding nodes.
      Both roots can be None or not None, but if one is None and the other is not, the trees are not similar.
      If both roots are not None, their values should be the same, and their left and right subtrees should also be similar.
      
      Example:
      t1 = TreeNode(1)
      t1.left = TreeNode(2)
      t1.right = TreeNode(3)
      
      t2 = TreeNode(1)
      t2.left = TreeNode(2)
      t2.right = TreeNode(3)
      
      t3 = TreeNode(1)
      t3.left = TreeNode(2)
      
      are_similar(t1, t2) == True
      are_similar(t1, t3) == False
      """
output:     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)