对称二叉树的含义非常容易理解,左右子树关于根节点对称,具体来讲,对于一颗对称二叉树的每一颗子树,以穿过根节点的直线为对称轴,左边子树的左节点=右边子树的右节点,左边子树的右节点=左边子树的左节点。所以对称二叉树的定义是针对一棵树,而判断的操作是针对节点,这时可以采取由上到下的顺序,从根节点依次向下判断,只需要重复调用函数,不需要回溯。
题目:对称的二叉树题:
请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的
解题思路一:先遍历右子节点再遍历左子节点。注意,我们必须把遍历二叉树时遇到的空指针考虑进来。
class Solution: def isSymmetrical(self, pRoot): # write code here return self.isSymmetricalCore(pRoot,pRoot) def isSymmetricalCore(self,pRoot1,pRoot2): if not pRoot1 and not pRoot2: return True if not pRoot1 or not pRoot2: return False if pRoot1.val != pRoot2.val: return False return self.isSymmetricalCore(pRoot1.left,pRoot2.right) and self.isSymmetricalCore(pRoot1.right,pRoot2.left)
解题思路二:迭代
def isSymmetric(self, root: 'TreeNode') -> 'bool': stack = root and [(root.left, root.right)] while stack: p1, p2 = stack.pop() if not p1 and not p2: continue if not p1 or not p2: return False if p1.val != p2.val: return False stack.append((p1.left, p2.right)) stack.append((p1.right, p2.left)) return True
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
金钱帮资源网 Copyright www.kbjia.com
暂无“Python对称的二叉树多种思路实现方法”评论...
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
2024年10月08日
2024年10月08日
- 敢达争锋对决全新10月超限定机体上线
- 上限最高的四大英雄,无一不是天花板!
- 小乔全面教学,一闪必须会,前期可以凶
- 机关百炼1-3关速通攻略,选对英雄和武器
- 《暗喻幻想:ReFantazio》最新TVCM公开!10月发售
- 爆料:《刺客信条:影》跳票原因是开发近况不佳
- 《黑神话》新一批角色原画欣赏!白毛寅虎似将军!
- 《暗喻幻想》Xbox版M站92分:Atlus新的巅峰
- Steam好评如潮!《寂静岭2RE》普通版现已解锁
- 2024国庆档总票房20.97亿 《志愿军:存亡之战》超8亿夺冠
- 《原神》部族龙形武士讨伐路线推荐 部族龙形武士位置一览
- 《原神》5.0浪沫羽鳃高效采集路线推荐 浪沫羽鳃位置一览
- 《原神》5.0深渊12层配队推荐
- 曾淑勤.2019-爱在山谷回荡【种子音乐】【WAV+CUE】
- 后弦.2006-9公主(EP)【东升世纪】【WAV+CUE】