题目描述:
请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。
例如,二叉树 [1,2,2,3,4,4,3] 是对称的。
但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:
示例 1:
输入:root = [1,2,2,3,4,4,3]
输出:true
示例 2:
输入:root = [1,2,2,null,3,null,3]
输出:false
解题思路:
递归判断左节点和右节点的值是否相同,以及判断左节点的左节点和右节点的右节点、左节点的右节点和右节点的左节点
class Solution:
def isSymmetric(self, root: TreeNode) -> bool:
if not root:
return True
return self.helper(root.left,root.right)
def helper(self,root1,root2):
if not root1 and not root2:
return True
if not root1 or not root2:
return False
return root1.val==root2.val and self.helper(root1.left,root2.right) and self.helper(root1.right,root2.left)