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

博罗县建设局网站快速排名推荐

博罗县建设局网站,快速排名推荐,免费发布信息的软件,apache建设多个网站题目要求 序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。 请设计一个算法来实现二叉树的序列化与反序…

题目要求

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

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

 

提示:

  • 树中结点数在范围 [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.hotlads.com/news/737.html

相关文章:

  • 河南宏业建设管理有限公司网站网上宣传方法有哪些
  • 合肥网站建设服务电商平台怎么加入
  • 网站开发个性化google网站入口
  • 建站之星凡客百度下载安装 官方
  • 论坛类网站开发全国疫情最新
  • 网站负责人拍照我想做电商
  • 团购网站推广怎么做seo优化检测
  • 合肥 网站建设公司哪家好百度推广代理商查询
  • 小企业网站建设公司哪家好网站营销策略有哪些
  • 石家庄做网站公司网络营销课程大概学什么内容
  • 中山市做网站实力软文营销广告
  • javaee可以做网站么seo优化网站教程
  • 一个网站怎么优化百度搜索排名机制
  • 教育培训类网站开发seo软文推广工具
  • 网站关键词在哪技术教程优化搜索引擎整站
  • 做地坪网站重庆seo招聘
  • 福州做网站的哪家好吉安seo
  • 门户网站建设和管理情况系统优化是什么意思
  • 上下篇文章wordpress河北seo
  • 成品网站源码1688版本号网络广告推广服务
  • 一起做网店类型的网站在哪里可以找到网站
  • 温州网页模板建站衡阳seo
  • 湛江网站建设外包德阳seo
  • 咋自己做网站网站模版
  • 手机网站开发要哪些人网页制作模板
  • 网站设置为默认主页谷歌广告推广
  • 企业网站asp搜索引擎的关键词优化
  • 网站设计_网站建设_手机网站建设本地建站软件有哪些
  • 新乐网站制作价格应用商店关键词优化
  • 域名备案步骤做seo需要用到什么软件