JZ28 对称的二叉树
思路:
左右子树若是对称的,则满足下面三种情况:
- left.val = right.val
- left.left和right.right满足一定性质
- left.right和right.left满足一定性质
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def isSymmetrical(self , pRoot: TreeNode) -> bool:
if not pRoot: return True
return self.helper(pRoot.left,pRoot.right)
def helper(self, left: TreeNode, right: TreeNode) -> bool:
if(not left and not right): return True
if(not left or not right): return False
return left.val==right.val
and self.helper(left.left,right.right)
and self.helper(left.right,right.left)