Symmetric Tree

分治算法体现,首先就是考虑当前,不要考虑父子的关系,分治的关键就是当前的条件,简单的分治就是根结点是当前的比较条件,但是这道题就是左右节点为当前节点,两个参数的分治思想。

class Solution(object):
    def isSymmetric(self, root):
        """
        :type root: TreeNode
        :rtype: bool
        """
        if root == None:
            return True
        return self.isSymmetricHelper(root.left, root.right)
    def isSymmetricHelper(self, left, right):
        if left == None and right == None:
            return True
        if left == None or right == None:
            return False
        return left.val == right.val and self.isSymmetricHelper(left.left, right.right) and self.isSymmetricHelper(left.right, right.left)

Last updated

Was this helpful?