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

网站建设类公司新闻徐州市城乡建设局门户网站

网站建设类公司新闻,徐州市城乡建设局门户网站,网站建设互联网营销营销推广,网站按抓取手机软件贵阳验证二叉树的前序序列化 题目要求 解题思路 方法一#xff1a;栈 栈的思路是「自底向上」的想法。下面要结合本题是「前序遍历」这个重要特点。 我们知道「前序遍历」是按照「根节点-左子树-右子树」的顺序遍历的#xff0c;只有当根节点的所有左子树遍历完成之后#xf…验证二叉树的前序序列化 题目要求 解题思路 方法一栈 栈的思路是「自底向上」的想法。下面要结合本题是「前序遍历」这个重要特点。 我们知道「前序遍历」是按照「根节点-左子树-右子树」的顺序遍历的只有当根节点的所有左子树遍历完成之后才会遍历右子树。对于本题的输入我们可以先判断「左子树」是否有效的然后再判断「右子树」是否有效的最后判断「根节点-左子树-右子树」是否为有效的。这个思路类似于递归而把递归改写成循环时就会使用「栈」这就是本题使用「栈」的原因。 下面的重点是如何判断一棵子树是否有效首先考虑最简单情况怎么判断一个节点是叶子节点很明显当一个节点的两个孩子都是 #空的时候该节点就是叶子节点。 当一个节点不是叶子节点的时候那么它必定至少有一个孩子非空有两种情况 两个孩子都非#空 一个孩子为#空另一个孩子非#空 为了兼容这两个情况我们想出了本题的一个重磅级的技巧把有效的叶子节点使用 # 代替。 比如把 4## 替换成 # 。此时叶子节点会变成空节点 具体操作流程示例如下 如输入9,3,4,#,#,1,#,#,2,#,6,#,#当遇到 x,#,# 的时候就把它变为 #。 模拟一遍过程 [9,3,4,#,#] [9,3,#]继续[9,3,#,1,#,#] [9,3,#,#] [9,#] 继续[9,#2,#,6,#,#] [9,#,2,#,#] [9,#,#] [#]结束 方法二计算入度出度 背景知识 入度有多少个节点指向它出度它指向多少个节点。 我们知道在树甚至图中所有节点的入度之和等于出度之和。可以根据这个特点判断输入序列是否为有效的 在一棵二叉树中 每个空节点 #会提供 0 个出度和 1 个入度。每个非空节点会提供 2 个出度和 1 个入度根节点的入度是 0。 我们只要把字符串遍历一次每个节点都累加 diff 出度 - 入度 。在遍历到任何一个节点的时候要求diff 0原因是还没遍历到该节点的子节点所以此时的出度应该大于等于入度。当所有节点遍历完成之后整棵树的 diff 0。 这里解释一下为什么下面的代码中 diff 的初始化为 1。因为我们加入一个非空节点时都会对 diff 先减去 1入度再加上 2出度。但是由于根节点没有父节点所以其入度为 0出度为 2。因此 diff 初始化为 1是为了在加入根节点的时候diff 先减去 1入度再加上 2出度此时 diff 正好应该是2. 代码 方法一 class Solution(object): def isValidSerialization(self, preorder): stack [] for node in preorder.split(,): stack.append(node) while len(stack) 3 and stack[-1] stack[-2] # and stack[-3] ! #: stack.pop(), stack.pop(), stack.pop() stack.append(#) return len(stack) 1 and stack.pop() # 方法二 class Solution(object): def isValidSerialization(self, preorder): nodes preorder.split(,) diff 1 for node in nodes: diff - 1 if diff 0: return Falseif node ! #: diff 2 return diff 0 复杂度分析 方法一 时间复杂度 O ( N ) O(N) O(N)空间复杂度 O ( N ) O(N) O(N) 方法二 时间复杂度 O ( N ) O(N) O(N)空间复杂度 O ( 1 ) O(1) O(1) 参考 负雪明烛
http://www.pierceye.com/news/698724/

相关文章:

  • 网络课程网站模板wordpress 编辑器 插件
  • 绝对大气漂亮的响应式网站后台模板什么是网络营销与概念
  • 网站搜索功能模块wordpress 搜索模版
  • 怎么可以创建网站体育设施建设网站
  • 中航建设集团网站wordpress实现分页
  • 企业网站现状舟山seo网络优化招聘
  • 棋牌网站开发工程师网络彩票建立网站
  • 上海正规建设网站私人订制网站建设中 显示
  • 网站建设广告宣传素材论坛网站制作教程
  • 苏州怎么做网站如何做公司自己的网站
  • 网站内容通过服务器会不会被更改旅游网站建设流程是什么意思
  • 建立中文网站的英文免费网站空间
  • 外国人做家具的网站免费自己做网站软件
  • 品牌网站建设毛尖2新加坡二手手机网站大全
  • 服装集团网站建设wordpress rss格式
  • 如何进行网站分析设计说明的英文
  • 仕德伟做的网站图片怎么修做网站深圳
  • 六安电商网站建设哪家好中国电力工程造价信息网
  • 如何做优化网站排alexa优化装修网线
  • 现在视频做网站晚了吗做网站的论文摘要
  • 环保公司网站模板那个公司可以做网站
  • 英雄联盟网站源码开发设计公司
  • 企业形象网站开发名师工作室网站建设
  • o2o网站建设最好公司排名做竹鼠网站
  • 免费做网站软件2003商丘网络营销服务
  • 杭州网站建设加q479185700如何网上外贸接单
  • 针对茅台酒企业网站建设方案鸿基建设工程有限公司网站
  • 有创意营销型网站建设wordpress 慢集市
  • 注册网站多少钱永康电子商务网站建设
  • 江西省网站建设庆阳在线网