input: Write a python function to check if two binary trees are identical.
  assert is_same_tree(TreeNode(1, TreeNode(2), TreeNode(3)), TreeNode(1, TreeNode(2), TreeNode(3))) == True
  assert is_same_tree(TreeNode(1, TreeNode(2)), TreeNode(1, None, TreeNode(2))) == False
  assert is_same_tree(None, None) == True
  assert is_same_tree(TreeNode(1), TreeNode(2)) == False
output: def is_same_tree(p: TreeNode, q: TreeNode) -> bool:
      if not p and not q:
          return True
      if not p or not q:
          return False
      if p.val != q.val:
          return False
      return is_same_tree(p.left, q.left) and is_same_tree(p.right, q.right)