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

杭州专门做网站衣服 div网站

杭州专门做网站,衣服 div网站,携程特牌 的同时做别的网站,国外营销型网站建设1 序列化与反序列化 二叉树的序列化与反序列化 1.1 实现思路 方式一:前序遍历 通过前序遍历方式实现二叉树的序列化将结果存入队列中要注意空节点也要存null 方式二:层序遍历 层序遍历也是用队列实现注意从左到右,遇到空节点存null 1.2 …

1 序列化与反序列化

二叉树的序列化与反序列化

1.1 实现思路
  1. 方式一:前序遍历
    1. 通过前序遍历方式实现二叉树的序列化
    2. 将结果存入队列中
    3. 要注意空节点也要存null
  2. 方式二:层序遍历
    1. 层序遍历也是用队列实现
    2. 注意从左到右,遇到空节点存null
1.2 代码实现
/*** 二叉树的序列化与反序列化** @author wen*/
public class SerializeAndReconstructTree {public static class Node {public int val;public Node left;public Node right;public Node(int val) {this.val = val;}}/*** 二叉树的序列化(前序遍历实现)** @param head 头节点* @return 返回一个队列*/public static Queue<String> preSerial(Node head) {Queue<String> queue = new LinkedList<>();pres(queue, head);return queue;}private static void pres(Queue<String> queue, Node head) {if (head == null) {queue.add(null);} else {queue.add(String.valueOf(head.val));pres(queue, head.left);pres(queue, head.right);}}/*** 二叉树的反序列化(前序遍历实现)** @param preQueue 存着二叉树序列化的队列* @return 返回,反序列化的二叉树头节点*/public static Node buildByPreQueue(Queue<String> preQueue) {if (preQueue == null || preQueue.isEmpty()) {return null;}return preBuild(preQueue);}private static Node preBuild(Queue<String> preQueue) {String val = preQueue.poll();if (val == null) {return null;}Node head = new Node(Integer.parseInt(val));head.left = preBuild(preQueue);head.right = preBuild(preQueue);return head;}/*** 二叉树序列化(层序遍历实现)** @param head 二叉树头节点* @return 返回序列化后的队列*/public static Queue<String> levelSerial(Node head) {Queue<String> ans = new LinkedList<>();if (head == null) {ans.add(null);} else {ans.add(String.valueOf(head.val));Queue<Node> help = new LinkedList<>();help.add(head);while (!help.isEmpty()) {Node cur = help.poll();if (cur.left != null) {ans.add(String.valueOf(cur.left.val));help.add(cur.left);} else {ans.add(null);}if (cur.right != null) {ans.add(String.valueOf(cur.right.val));help.add(cur.right);} else {ans.add(null);}}}return ans;}/*** 反序列化(层序遍历实现)** @param levelQueue 序列化存入的队列* @return 返回,反序列化的二叉树头节点*/public static Node buildByLevelQueue(Queue<String> levelQueue) {if (levelQueue == null || levelQueue.isEmpty()) {return null;}Node head = generateNode(levelQueue.poll());Queue<Node> queue = new LinkedList<>();if (head != null) {queue.add(head);}Node node = null;while (!queue.isEmpty()) {node = queue.poll();node.left = generateNode(levelQueue.poll());node.right = generateNode(levelQueue.poll());if (node.left != null) {queue.add(node.left);}if (node.right != null) {queue.add(node.right);}}return head;}private static Node generateNode(String val) {if (val == null) {return null;}return new Node(Integer.parseInt(val));}
}
http://www.yayakq.cn/news/87503/

相关文章:

  • 模板网站的弊端重庆铜梁网站建设报价
  • discuz 做的网站科技公司注册需要什么条件
  • 网站是如何做的湖南营销型网站建设磐石网络
  • 北京怎样做企业网站门户网站建设培训简报
  • 网站数据库有哪些菏泽做网站优化的
  • 百度行业网站怎么做宁波专业网站推广平台便宜
  • 企业网站制作是什么长沙建设工程造价网
  • 卖酒网站排名wordpress存档
  • 十大高端网站定制设计师个人公众号登录平台
  • 怎么做企业营销型网站济南网站建设公司熊掌号
  • 课件ppt模板免费下载网站购物网站模块例子
  • 岳池网站建设2345网址导航站
  • 尚品网站建设建设公司的网站制作
  • 信息型网站建设的目的定位房产中介公司网站源码
  • 矿大师德建设网站2核4G服务器wordpress
  • 建外贸网站用什么主机客户关系管理论文3000字
  • 重庆网站建设是什么爱是做的电影网站
  • 做网站卖别人的软件可以吗电商平台网站建设多少钱
  • 招投标网站官网php网站开发基础入门教程
  • 传媒免费网站建设做的好的h游戏下载网站
  • 龙华区住房建设局网站做网站建设销售工资
  • 油边机 东莞网站建设建企业网站需要多少钱
  • 淘宝网发布网站建设公司网站数媒设计制作
  • 网站建设yingkagou山西免费网站建设
  • 建设大型网站制作品牌上海网站建设 建站猫
  • 如何用html做班级网站重庆酉阳网站设计公司
  • 网站建设有那些步骤小程序代理怎么样
  • 柳市网站设计推广怎么优化一个网站
  • 网站上传文件代码怎么做网页 在浏览器上
  • 顺德营销网站设计做网站的上市公司