101. 对称二叉树(简单)-二叉树

给你一个二叉树的根节点 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)
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容