题目:请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。
对于题目的要求即是左孩子和右孩子要么同时是空,要么同时存在且值相等;对于左孩子和右孩子继续向下找,便是左孩子的右孩子和右孩子的左孩子要同时满足上述要求,并且右孩子的左孩子和左孩子的右孩子同理,是& 的关系
def isSymmetric(self, root: TreeNode) -> bool:
def recur(self, L: TreeNode, R: TreeNode) -> bool:
if not L and not R:
return True
if not L or not R or L.val != R.val:
return False
return recur(L.left, R.right) and recur(L.right, R.left)
if not root:
return True
return recur(root.left, root.right)