zoukankan      html  css  js  c++  java
  • 297. Serialize and Deserialize Binary Tree

    一、题目

      1、审题 

      2、分析

        将二叉树的结构序列化为字符串形式表示,在通过这个字符串形式将此二叉树的结构展示出来!

    二、解答

      1、思路

        序列化过程: 将二叉数以先序遍历的方式展示,并且使用 “X” 代表一个 null 节点,而且每个节点之间采用 “,”隔开。可以采用一个 StringBuilder 来记录增加的字符串。

        反序列化过程: 使用一个队列 Queue 存储上一步序列化的节点,当构建子树时,出现 X 代表此子树结束。继续构架下一个分支。

     1     private static final String spliter = ",";
     2     private static final String NN = "X";
     3     
     4     // Encodes a tree to a single string.
     5     public String serialize(TreeNode root) {
     6         StringBuilder sb = new StringBuilder();
     7         buildString(root, sb);
     8         return sb.toString();
     9     }
    10 
    11     private void buildString(TreeNode root, StringBuilder sb) {
    12         if(root == null)
    13             sb.append(NN).append(spliter);
    14         else {
    15             sb.append(root.val).append(spliter);
    16             buildString(root.left, sb);
    17             buildString(root.right, sb);
    18         }
    19     }
    20 
    21     // Decodes your encoded data to tree.
    22     public TreeNode deserialize(String data) {
    23         Deque<String> nodes = new LinkedList<>();
    24         nodes.addAll(Arrays.asList(data.split(spliter)));
    25         return buildTree(nodes);
    26     }
    27 
    28     private TreeNode buildTree(Deque<String> nodes) {
    29         String val = nodes.remove();
    30         if(val.equals(NN))
    31             return null;
    32         else {
    33             TreeNode node = new TreeNode(Integer.valueOf(val));
    34             node.left = buildTree(nodes);
    35             node.right = buildTree(nodes);
    36             return node;
    37         }
    38     }

        

  • 相关阅读:
    正则表达式全部符号解释
    如何在开机启动时自动打开小键盘灯
    SQL SERver2005中row_number() 的用法
    用命令打开控制面板的各项
    SQL Server 2008 对 TSQL 语言的增强
    SQL2000DBCC DBREINDEX重建索引提高SQL Server性能
    Sql Server 中常用的字符串函数
    coalesce的用法
    word to PD R qm addin 运行时错误‘91’
    Windows系统:开始–运行–命令大全
  • 原文地址:https://www.cnblogs.com/skillking/p/10027088.html
Copyright © 2011-2022 走看看