https://leetcode-cn.com/submissions/detail/305476984/
需要注意的点
1.迭代
2.递归
# 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:if not root:return Trueleft = root.leftright = root.rightif (not left and right) or (not right and left):return Falseq = [left, right]while q:n1 = q.pop(0)n2 = q.pop(0)if not n1 and not n2:continueif not n1 or not n2:return Falseif n1.val != n2.val:return Falseq.append(n1.left)q.append(n2.right)q.append(n1.right)q.append(n2.left)return True
# 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:if not root:return Truedef reverseTree(left: TreeNode, right: TreeNode)-> bool:if not left or not right:return left == rightif left.val != right.val:return Falsereturn (reverseTree(left.left, right.right) and reverseTree(left.right, right.left))return reverseTree(root.left, root.right)
