力扣101.对称二叉树

张开发
2026/5/4 17:31:16 15 分钟阅读
力扣101.对称二叉树
给你一个二叉树的根节点root 检查它是否轴对称。示例 1输入root [1,2,2,3,4,4,3]输出true示例 2输入root [1,2,2,null,3,null,3]输出false提示树中节点数目在范围[1, 1000]内-100 Node.val 100进阶你可以运用递归和迭代两种方法解决这个问题吗思路1.使用递归往左右量方向检查访问镜像位置的节点检查两个节点的.val是否相等或者是否为None只要找到一个为False直接返回2.使用bfs回文哈希检查每一层需要包含空节点图上直观但消耗太多空间。以思路1为例# Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution: def isSymmetric(self, root: TreeNode) - bool: def judge(left,right): if not left and not right: return True if not left or not right or left.val ! right.val: return False #经过上两层判断当前两个节点满足 继续搜寻他们的子节点 return judge(left.left,right.right) and judge(left.right,right.left) #当且仅当 四个镜像位全部满足时才能返回Tru if not root: return True return judge(root.left,root.right)

更多文章