给你一个二叉树的根节点 root , 检查它是否轴对称。
分析
- 可以递归的进行,可以先设想只有一层,怎么进行,然后再继续
# 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 = right
class Solution:
def isSymmetric(self, root: Optional[TreeNode]) -> bool:
#def reverse(root):
# if root:
# # 陷阱1,需要同时进行,不然就会出现root.left或者root.right重复利用的问题
# root.left, root.right = reverse(root.right),reverse(root.left)
#
# return root
#reverse_root = reverse(root)
def is_mirror(root1, root2):
if not root1 and not root2:
return True
if root1 and not root2:
return False
if root2 and not root1:
return False
if root1.val != root2.val:
return False
return is_mirror(root1.left, root2.right) and is_mirror(root1.right, root2.left)
return is_mirror(root, root)