给你一个二叉树的根节点root
, 检查它是否轴对称。
例:
输入:root = [1,2,2,3,4,4,3]输出:true
解析:
因为是二叉树,那么一次只需要比较两个节点即可。根节点比较一次,中间节点比较两次,左边节点的左节点和右边节点的右节点,左边节点的右节点和右边节点的左节点。递归。
# Definition for a binary tree node.# class TreeNode(object):#def __init__(self, val=0, left=None, right=None):# self.val = val# self.left = left# self.right = rightclass Solution(object):def isSymmetric(self, root):""":type root: TreeNode:rtype: bool"""def check(node1, node2):if not node1 and not node2: # 两个节点都不存在return Trueelif not node1 or not node2: # 一个存在一个不存在return Falseif node1.val != node2.val: # 值不相等return Falsereturn check(node1.left, node2.right) and check(node1.right, node2.left) # 分两次比对,因为是二叉树,一个节点最多有两个子节点。return check(root, root)