当前位置: 首页 > wzjs >正文

中国建设银行招投标网站获客软件

中国建设银行招投标网站,获客软件,创建个人网站,网站专栏怎么做漂亮题目: 给定一个二叉树的根节点root,检查它是否轴对称。 方法一:递归 如果一个树的左子树与右子树镜像对称,那么这个树是对称的。 互为镜像的条件:他们的两个根结点具有相同的值,每棵树的右子树都与另一个树的左子树…

题目:

给定一个二叉树的根节点root,检查它是否轴对称。


方法一:递归

如果一个树的左子树与右子树镜像对称,那么这个树是对称的。

互为镜像的条件:他们的两个根结点具有相同的值,每棵树的右子树都与另一个树的左子树镜像对称

可以实现这样一个递归函数,通过「同步移动」两个指针的方法来遍历这棵树,p指针和q指针一开始都指向这棵树的根,随后p右移时,q左移,p左移时,q右移。每次检查当前p和q节点的值是否相等,如果相等再判断左右子树是否对称。

# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution(object):def isSymmetric(self, root):""":type root: Optional[TreeNode]:rtype: bool"""return self.check(root.left,root.right)def check(self,p,q):if p is None and q is None:return True if p is None or q is None:return Falsereturn p.val==q.val and self.check(p.left,q.right) and self.check(p.right,q.left)

时间复杂度:O(n)

空间复杂度:O(n)


方法二:迭代

初始化时我们把根节点入队两次。每次提取两个结点并比较它们的值(队列中每两个连续的结点应该是相等的,而且它们的子树互为镜像),然后将两个结点的左右子结点按相反的顺序插入队列中。当队列为空时,或者检测到树不对称(即从队列中取出两个不相等的连续结点)时,该算法结束。

# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution(object):def isSymmetric(self, root):""":type root: Optional[TreeNode]:rtype: bool"""return self.check(root,root) #同一个根节点是因为要比较树的左右子树def check(self,u,v):q=[]  #将节点 u 和 v(即左右子树的根节点)添加到队列中,接下来我们将对这些节点进行比较q.append(u)q.append(v)while q:u=q.pop(0)v=q.pop(0)#每次从队列中取出两个节点比较,看它们是否对称if u is None and v is None:#如果都是 None,说明这两个子树都为空,可以跳过这次比较continueif u is None or v is None or u.val !=v.val:return Falseq.append(u.left) #节点 u 和 v 的子节点按照对称的方式加入队列q.append(v.right)q.append(u.right)q.append(v.left)return True

时间复杂度:O(n)

空间复杂度:O(n)

http://www.dtcms.com/wzjs/54405.html

相关文章:

  • 网站的推广方法怎样做企业推广
  • 兰州网站制作联系方式今日的新闻
  • 网站建设 趋势陕西企业网站建设
  • 网站分页怎么做sem是什么检测分析
  • 高校两学一做网站建设手机百度
  • 江门网站建设方案优化市场营销的策划方案
  • 咨询公司注册经营范围长沙百度seo
  • wordpress编辑器 下载地址seo诊断方案
  • 珍爱网建设网站的目的最好的bt磁力搜索引擎
  • 有帮忙做网站的吗百度文库个人登录
  • 高端网站建设公司排名学电脑在哪里报名
  • word超链接网站怎么做杭州seo教程
  • 房产信息网网站原创代写文章平台
  • 做兼职写小说网站网络推广违法吗
  • 做网站需要会写代码百度上怎么做推广
  • 做软欧的网站上海百度推广开户
  • 打电话说帮忙做网站百度seo关键词怎么做
  • 软件app免费下载大全优化网站排名费用
  • 做数学题好的网站windows优化大师是电脑自带的吗
  • 盐城市建设局网站打不开湖南网络推广服务
  • 移动端比较好的网站网站域名购买
  • 黄页群发软件建站seo是什么
  • 免费网站报价单怎么做推广搜索怎么选关键词
  • 选服务好的网站建设公司地推网
  • 网站制作的详情表aso关键字优化
  • 做智能家居网站建站平台如何隐藏技术支持
  • 怎么做网站关键词视频湖州网站seo
  • 不会代码怎么做网站百度搜索引擎优化详解
  • 住建部官方网站移动营销
  • 抖音做我女朋友网站今日军事新闻最新消息中国