写一个对称二叉树的运行代码
时间: 2023-05-17 10:04:19 浏览: 58
以下是对称二叉树的运行代码:
```
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: TreeNode) -> bool:
if not root:
return True
return self.isMirror(root.left, root.right)
def isMirror(self, left: TreeNode, right: TreeNode) -> bool:
if not left and not right:
return True
if not left or not right:
return False
if left.val != right.val:
return False
return self.isMirror(left.left, right.right) and self.isMirror(left.right, right.left)
```
这段代码使用递归的方式判断一个二叉树是否对称。如果二叉树为空,则认为它是对称的;否则,判断它的左子树和右子树是否镜像对称。如果左子树和右子树都为空,则认为它们是对称的;如果左子树和右子树中有一个为空,则认为它们不是对称的;如果左子树和右子树的根节点的值不相等,则认为它们不是对称的;否则,递归判断左子树的左子树和右子树的右子树是否镜像对称,以及左子树的右子树和右子树的左子树是否镜像对称。