題目:
對稱二叉樹:給定一個二叉樹,檢查它是否是鏡像對稱的。
例如,二叉樹 [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)