一、题目
给你一个二叉树的根节点 root , 检查它是否轴对称。
二、思路
二叉树问题,一般考虑的是递归。
对于一棵树
① 如果没有左子树且没有右子树,则是对称的
② 如果不同时没有左子树和右子树,则是不对称的
③ 如果同时有左子树和右子树,但值不同,则是不对称的
三、代码
代码如下:
1.方法一
# 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 dfs(left,right):
if not left and not right:
return True
elif not left or not right:
return False
elif left.val != right.val:
return False
return dfs(left.left,right.right) and dfs(left.right,right.left)
return dfs(root.left,root.right)