一、题目
给你一个二叉树的根节点 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
进阶:你可以运用递归和迭代两种方法解决这个问题吗?
二、解法
使用递归,往下对称着看就好了,反正节点传到函数ok
里面,又不用管它俩到底相距的有多远,。。
完整代码
# 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 ok(a, b):
if not (a or b):
return True
if not (a and b):
return False
if a.val != b.val:
return False
return ok(a.left, b.right) and ok(a.right, b.left)
if not root:
return True
return ok(root.left, root.right)