python
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def isSymmetric(self, root: Optional[TreeNode]) -> bool:
if not root: return False
def dfs(left, right):
if left is None or right is None:
return left is right # both as None
return left.val == right.val and dfs(left.right, right.left) and \
dfs(right.right, left.left)
return dfs(root.left, root.right) if root.left is not root.right else True