给定一个二叉树,看它是不是“镜像树”(瞎起的)。
递归。从上往下,分别判断左右子树的根节点值是否相等,相等则继续往下递归,不等则返回False。
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def isSymmetric(self, root):
"""
:type root: TreeNode
:rtype: 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
elif not root1 or not root2:
return False
elif root1.val != root2.val:
return False
return self.helper(root1.left, root2.right) and self.helper(root1.right, root2.left)