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

北京微信网站建设电话盘多多搜索引擎入口

北京微信网站建设电话,盘多多搜索引擎入口,长沙网站制作,wordpress 开启链接题目要求 序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。 请设计一个算法来实现二叉树的序列化与反序…

题目要求

序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。

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

 

提示:

  • 树中结点数在范围 [0, 104] 内
  • -1000 <= Node.val <= 1000

解题思路

观察可知,二叉树的序列化和反序列化都是通过二叉树的层序遍历进行实现的,所以我们想要解题,就要通过二叉树的层序遍历的性质来进行解题。

遍历数组,当1个节点进入队列的时候,且弹出该节点之时,则当前处理的该节点算是一个根节点。按照层序遍历的特点,我们设有一个i指针。

当弹出节点的时候,i正好位于当前节点的左子结点。i自增1之后,则i处于当前根节点的右子节点中。若非空,则子节点加入栈。

代码解析

/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val = x; }* }*/
public class Codec {// Encodes a tree to a single string.public String serialize(TreeNode root) {if (root == null){return "[]";}// 新建一个队列Queue<TreeNode> queue = new LinkedList<>();// 新建一个列表List<TreeNode> list = new ArrayList<>();// 根节点入队queue.offer(root);while (!queue.isEmpty()) {TreeNode node = queue.poll();if (node != null) {list.add(node);queue.offer(node.left);queue.offer(node.right);} else {list.add(null);}}StringBuilder sb = new StringBuilder();sb.append("[");sb.append(list.stream().map(node -> node == null ? "null" : String.valueOf(node.val)).collect(Collectors.joining(",")));sb.append("]");String result = sb.toString();return result;}// Decodes your encoded data to tree.public TreeNode deserialize(String data) {if (data.equals("[]")) {return null;}// 构造值数组String[] vals = data.substring(1, data.length() - 1).split(",");// 构造队列Queue<TreeNode> queue = new LinkedList<>();// 构造根节点TreeNode root = new TreeNode(Integer.parseInt(vals[0]));// 根节点加入队列queue.offer(root);int i = 1;while (!queue.isEmpty()) {// 弹出当前根节点TreeNode curRoot = queue.poll();if (!vals[i].equals("null")) {curRoot.left = new TreeNode(Integer.parseInt(vals[i]));queue.offer(curRoot.left);}i++;if (!vals[i].equals("null")) {curRoot.right = new TreeNode(Integer.parseInt(vals[i]));queue.offer(curRoot.right);}i++;}return root;}
}

http://www.tj-hxxt.cn/news/43679.html

相关文章:

  • 网站建设公司上海做网站公司南宁seo优化公司
  • 淘宝网站所用编码湖南网站建设推广
  • 如何做网站发产品销售网络营销策略方案
  • 北京网站建设公司官网站点搜索
  • 网页平面设计公司北京网站seo设计
  • 金华商城网站制作网络营销推广合同
  • 黄江镇网站建设公司杭州seo网站排名优化
  • 老实人做网站贴吧友情链接在哪
  • 做网站找哪家好要钱吗百度官网客服
  • 独山县哪里有做网站的做一个微信小程序需要多少钱
  • 做营销型网站服务游戏推广怎么快速拉人
  • 河南富士康网页优化包括什么
  • 网站做菠菜网络推广运营团队
  • 制作一个景点的网站苏州百度代理公司
  • cf刷枪网站怎么做的sem与seo
  • 东海做网站公司设计网站的公司
  • 网站icp备案怎么做seo优化专员
  • 衢州建校地址南宁seo专员
  • 测试页面网站建设百度营销推广登录
  • 网站页面上的下载功能怎么做深圳做网站公司哪家好
  • 广西网站建设.com百度站长平台注册
  • 东莞樟木头网站建设福州百度快速优化排名
  • 宜兴做阿里巴巴网站站长之家 seo查询
  • 菜鸟学做网站的步骤得物app的网络营销分析论文
  • 如何给网站做引流运营和营销是一回事吗
  • 网站备案流程详细站牛网是做什么的
  • 专门卖建筑材料的网站百度竞价开户渠道
  • 沈阳网站制作公司教育机构在线咨询
  • 网站被k是什么意思足球进球排行榜
  • 四川自助seo建站网页设计的流程