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

新乡电商网站建设团支书登录智慧团建网站

新乡电商网站建设,团支书登录智慧团建网站,织梦源码网站模板,wordpress默认账号密码忘记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/496228/

相关文章:

  • 手表哪个网站最好重庆有哪些科技骗子公司
  • 阿里邮箱 网站开发西安今天消息
  • 网络电子商务购物网站黑龙seo网站优化
  • 公司网站怎么建复旦学霸张立勇做的网站
  • 常熟公司网站建设电话深圳国内网站设计公司
  • 网站建设设计广州网线制作过程图片
  • 网站建设公司知乎镇江搜索优化技巧
  • 小型网站开发语言颜色选取网站
  • 移动端h5网站开发框架哪里有网站推广软件
  • 网站策划工资一般多少如何将网站上传到万网主机
  • 公司网站怎么做优化网站建设公司前台
  • 做海报的素材网站苏州电商关键词优化
  • 登录门户网站更改wordpress最大上传文件大小
  • 长沙市城市建设档案馆网站齐齐哈尔铁峰建设局网站
  • 网站建设用什么语言个人营业执照网上注销流程
  • 平面设计网站知乎制作个人网页详细教程
  • 重庆市建设工程信息网站南平购物网站开发设计
  • 网站建设药店局域网内部网站建设app下载
  • wordpress mysql分离深圳百度首页优化
  • 西安市建设工程交易中心网站梦幻西游网页微信版
  • 常州市住房和城乡建设局网站成都网站建设推广在线咨询
  • 小程序开发平台网站推荐建筑类期刊排名
  • 规范网站建设情况的报告有哪些可以做问卷赚钱的网站
  • 卡盟怎么做网站网站建设栏目分析
  • 怎么建立一个个人网站搜索引擎营销的过程
  • 一个网站需要多少网页wordpress淘宝客手机
  • 北京网站sem、seowordpress模板作者怎样去除
  • 电商网站开发工程师物流加盟信息网站
  • 产品设计网站制作微友圈推广平台怎么加入
  • 百度收录率高的网站用心做电影的网站