题目:
Given the root of a binary tree, check whether it is a mirror of itself (i.e., symmetric around its center).
给定一个binary tree,检定它是否对称
这题其实有一点100.的感觉
只是变成两个node右子节点要等于对方的左子节点,左子节点要等于对方的右子节点
# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right=None):# self.val = val# self.left = left# self.right = rightclass Solution: def isSymmetric(self, root: Optional[TreeNode]) -> bool: tree1=root.left tree2=root.right def symornot(t1,t2): if t1 is t2: return True elif t1 and t2 and t1.val==t2.val: return symornot(t1.left,t2.right) and symornot(t1.right,t2.left) else: return False return symornot(tree1,tree2)
一开始的root并不重要,我们只要检查它的两个子树是否镜面对称即可
比的过程如果对称且都不是None就递迴继续往下比
一None一非None回传False(不对称)
都为None回传True(到底了)
完全检查完就知道两个子树是否完全对称了
最后执行时间35ms(faster than 91.94%)
那我们下题见