左子树和右子树的根节点的值相等;
递归地,左子树的左子树与右子树的右子树对称,左子树的右子树与右子树的左子树对称。
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def check2(left_p,right_p):
if (not left_p and not right_p):# 左右都为空子树
return True
if (left_p and not right_p) or (not left_p and right_p):# 一个为空,另一个不为空
return False
return left_p.val == right_p.val and check2(left_p.left,right_p.right) and check2(left_p.right,right_p.left)# 1. 根节点值相等,2.左子树的左子树与右子树的右子树对称,3.左子树的右子树与右子树的左子树对称。三个条件同时满足时,返回真。
class Solution:
def isSymmetric(self, root: TreeNode) -> bool:
return check2(root, root)