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

app网站排名网站的按钮怎么做 视频

app网站排名,网站的按钮怎么做 视频,网站服务费算什么费用,济南中企动力怎么样文章目录 题目描述简化题目思路分析 题目描述 请实现两个函数,分别用来序列化和反序列化二叉树。 你需要设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将…

文章目录

  • 题目描述
  • 简化题目
  • 思路分析

题目描述

请实现两个函数,分别用来序列化和反序列化二叉树。
你需要设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为原始的树结构。

简化题目

这题实际上就是给了两个函数A和B。
A的功能:给树的root,输出str类型的层次遍历结果。
B的功能:给str类型的层次遍历结果,构造树。

不过这里的层次遍历需要加上null。
比如下面这张图,输出结果就是:[1,2,3,null,null,4,5]
在这里插入图片描述

思路分析

通常使用的前序、中序、后序、层序遍历记录的二叉树的信息不完整,即唯一的输出序列可能对应着多种二叉树可能性。题目要求的 序列化 和 反序列化 是 可逆操作 。因此,序列化的字符串应携带 完整的二叉树信息 。

也就是要加上叶子结点的null在对应的位置。

一、A函数:给树root,输出字符串。
这个比较容易,就是层次遍历就行了,遇到空节点记得加入null。
最后在return的时候要注意,人家要的是字符串型列表。

ef serialize(self, root):if not root:return '[]'queue = []res = []queue.append(root)while queue:node = queue.pop()if node:res.append(str(node.val))queue.insert(0,node.left)queue.insert(0,node.right)else:res.append("null")return  '[' + ','.join(res) + ']'

二、B函数:给字符串,构造树

该函数给的是字符串。所以要先提取出来列表方便后面使用。

vals = data[1:-1].split(",")

假设题目所给字符串下图所示:
在这里插入图片描述
设置一个 i 变量来遍历vals。

与传统构造树的方法基本一样。

当vals[i] 为非null的时候,构造树。
为null的时候,i往后挪,不做其余操作。

可以这样理解,对于叶子节点,其左右都是null。每次构造一个节点,就判断下一个
vals[i] 的值是否为null,若为null就不构造子树,i 继续往后挪。
当左右子树都判断完了,就继续下一轮循环,重新从队列中取出新的节点。

看下面这张图帮助理解:
在这里插入图片描述

在这里插入图片描述

此时 i 指向第一个null,既在循环中判断vals[I] 为null,则不构建节点2的左子树,i往后挪,继续判断,又是null,就不构建 节点2 的右子树 ,i 继续往后。
后面又进行新一轮的while,从队列中取出新的节点3,再次判断vals[i]。。。。以此列推

 def deserialize(self, data):if data == '[]':return i = 1queue = []vals = data[1:-1].split(",")  # 提取列表root = TreeNode(val = vals[0])  # 构造根节点queue.append(root)while queue:node = queue.pop()if vals[i] != "null":node.left = TreeNode(val = int(vals[i]))queue.insert(0,node.left)i+=1if vals[i] !="null":node.right = TreeNode(val=int(vals[i]))queue.insert(0,node.right)i+=1return root

http://www.yayakq.cn/news/734132/

相关文章:

  • 网站建站流程质量检测中心培训网站
  • 太原北京网站建设建设培训考试服务网站
  • 建设的电影网站总是无法连接网站云空间大小
  • 住房与城乡建设部违法举报网站wordpress 国定链接
  • 展示用网站模板南京百度网站制作
  • 手机网站制作良心服务平阳网站建设公司
  • 百度收录网站之后又怎么做百度网盘怎么用
  • 建议网站的方案wordpress 分类置顶
  • 欧普建站上市公司查询网站
  • 做单页网站需要做什么科技公司很多都是骗子公司吗
  • 河北唐山建设工程协会网站门户网站建设工作
  • 万年历网站做市场监督管理局投诉电话是多少
  • 免费制作微信小程序的网站网站设计济南
  • 搭建网站实时访问地图中国施工企业协会官网
  • 图片预览网站 末班网站开发推广方案策划书
  • 网址如何备案石家庄百度seo代理
  • 男女做那个暖暖网站深圳做网站推广的公司
  • 湖南网站建设优化iis7架设网站教程
  • 分析网站结构想让客户公司做网站的话语
  • 宁夏银川网站建设深圳外贸建站模板
  • 门户网站建设进一步提升邯郸网站设计应搜韦欣cidun8上词
  • led 网站模板江苏智能网站建设流程
  • 四川德立胜建设工程有限公司网站网站制作全包多少钱
  • 电子政务 和网站建设总结松山湖网站建设
  • 网页导航网站设计免费制作图片带字 手机软件
  • 沈阳市有做网站的公司谁给我一个企业邮箱认证
  • 让你做一个旅游网站你会怎么做wordpress 前台上传
  • 网站关键字选择标准网站pv uv 多少算好站
  • 营销网站定制的优势wordpress两个域名访问不了
  • 做平台网站怎么赚钱网站系统