# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution(object):def isSymmetric(self, root):""":type root: Optional[TreeNode]:rtype: bool"""#递归:不算根节点,左子树和右子树是镜像对称的,那么这个树是对称。#左子树和右子树镜像对称的判断:他们的两个根节点值相同。每个树的右子树都与另一个树的左子树镜像对称。#先判断节点值是否相等,如果相等,再判断左右子树是否对称if root is None:return Truedef check(p,q):if p is None and q is None:return True#如果上面的语句都没return,那么说明两者不是都为空————至少一个是非空的。所以就要判断:如果有一个是空的。空的和不空的 显然不对称。下面的语句就在判断这个if p is None or q is None:return Falsereturn p.val == q.val and check(p.left,q.right) and check(p.right,q.left)return check(root.left,root.right)