from typing import Optional # 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 isSameTree(self, p: Optional[TreeNode], q: Optional[TreeNode]) -> bool: if p is None or q is None: if p is None and q is None: return True return False if p.val != q.val: return False if p.left and q.left: if not self.isSameTree(p.left, q.left): return False elif p.left or q.left: return False if p.right and q.right: if not self.isSameTree(p.right, q.right): return False elif p.right or q.right: return False return True