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?