对称的二叉树

题目描述

请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。

思路

树的问题通常可以用递归解决。
这道题其实就是从上到下比较左右节点,能顺利比到最后的叶子节点就返回正确,中间匹配到不相等的值就返回错误。

代码

class Solution:
    def isSymmetrical(self, pRoot):
        # write code here
        p1 = pRoot
        p2 = pRoot
        flag = self.isMirror(p1,p2)
        return flag
    def isMirror(self,p1,p2):
        if p1 == None and p2 == None:
            return True
        if p1 == None or p2 == None:
            return False
        if p1.val != p2.val:
            return False
        flag1 = self.isMirror(p1.left,p2.right)
        flag2 = self.isMirror(p1.right,p2.left)
        return flag1 and flag2

你可能感兴趣的:(对称的二叉树)