剑指Offer 28 | LeetCode 对称二叉树(Python)

题目描述

给定一个二叉树,检查它是否是镜像对称的。


题目解法

思路是判断左子树与右子树的翻转是不是同一棵树。
基于LeetCode 100.相同的树,巧妙地进行判断。

class Solution(object):
    def isSameTree(self, p, q):
        if not p and not q: return True
        if p and q and p.val == q.val:
        	# 注意 left 和 right 进行了交换
            return self.isSameTree(p.left,q.right) and self.isSameTree(p.right,q.left)
        
        return False
    
    def isSymmetric(self, root):
        if not root: 
            return True
        else:
            return self.isSameTree(root.left, root.right)

你可能感兴趣的:(LeetCode,剑指Offer)