判断二叉树是不是对称的
思路:递归过程
- 判断当前指针两个节点值是否相等
- 判断A的右子树和B的左子树是否对称
- 判断A的左子树和B的右子树是否对称
class Solution(object):
def isSymmetric(self, root):
"""
:type root: TreeNode
:rtype: bool
"""
return self.is_symmetrical_core(root, root)
def is_symmetrical_core(self,node1, node2):
if node1 is None and node2 is None:
return True
if node1 is None or node2 is None:
return False
if node1.val != node2.val:
return False
return self.is_symmetrical_core(node1.left, node2.right) and self.is_symmetrical_core(node1.right, node2.left)