''' 题目描述 请实现一个函数,用来判断一颗二叉树是不是对称的。 注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。 ''' # -*- coding:utf-8 -*- # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution: def is_equal(self,left,right): if not left and not right:# 递归出口。递归基 return True if left and right: if left.val==right.val: return True and self.is_equal(left.left,right.right) and self.is_equal(left.right,right.left) # 判断但却概念的二叉树是否是对称的二叉树 # 即判断两个子结构是否对称相等,即当前节点的左子树和右子树是否是对称的 # 体现在:左子树的左子树和右子树的右子树镜像对称相等 # 左子树的右子树和右子树的左子树镜像对称相等 return False def isSymmetrical(self, pRoot): # write code here # 实际上就是递归地判断二叉树的每个节点: # 每个节点的左孩子和右孩子中的数值完全相等 # 如果有一个不相等则就不是对称二叉树 if not pRoot: return True if not pRoot.right and not pRoot.left: return True if pRoot.left and pRoot.right: return self.is_equal(pRoot.left,pRoot.right) else: return False
python 对称的二叉树
猜你喜欢
转载自blog.csdn.net/WYXHAHAHA123/article/details/89921672
今日推荐
周排行