一、递归
# 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:
def ismirror(left, right):
if left is None and right is None:
return True
if left and right and left.val == right.val:
return ismirror(left.left, right.right) and ismirror(left.right, right.left)
else:
return False
if root == None:
return True
return ismirror(root.left, root.right)
1.官方解释很明确
2.递归的主要思想就是反复调用一个相同的函数,把未知的问题变成你已经解决的问题。本题关键的点在于第三层对应关系 ismirror(left.left, right.right) and ismirror(left.right, right.left)
二、迭代