题目:
对称二叉树:给定一个二叉树,检查它是否是镜像对称的。
例如,二叉树 [1,2,2,3,4,4,3] 是对称的。
1
/ \
2 2
/ \ / \
3 4 4 3
但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:
1
/ \
2 2
\ \
3 3
思路:
递归大法好。
程序:
# Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution: def isSymmetric(self, root: TreeNode) -> bool: if not root: return True return self.auxiliary(root.left, root.right) def auxiliary(self, left_node: TreeNode, right_node: TreeNode): if not left_node and not right_node: return True if not left_node and right_node: return False if left_node and not right_node: return False if left_node.val != right_node.val: return False else: return self.auxiliary(left_node.left, right_node.right) and self.auxiliary(left_node.right, right_node.left)