二叉树的序列化

首先我们介绍二叉树先序序列化的方式,假设序列化的结果字符串为str,初始时str等于空字符串。先序遍历二叉树,如果遇到空节点,就在str的末尾加上“#!”,“#”表示这个节点为空,节点值不存在,当然你也可以用其他的特殊字符,“!”表示一个值的结束。如果遇到不为空的节点,假设节点值为3,就在str的末尾加上“3!”。现在请你实现树的先序序列化。
给定树的根结点root,请返回二叉树序列化后的字符串。

先用先序遍历.

public class TreeToString {
    private String END="!";
    private String NULL="#";
    public String toString(TreeNode root) {
        StringBuilder sb=new StringBuilder();
        
        preOrderRec(root,sb);
        return sb.toString();
    }
    
    private void preOrderRec(TreeNode root,StringBuilder sb){
        if(root==null)return;
        sb.append(root.val+END);
        if(root.left!=null){
           preOrderRec(root.left,sb);
        }
        else{
           sb.append(NULL+END); 
        }
       if(root.right!=null){
           preOrderRec(root.right,sb);
        }
        else{
           sb.append(NULL+END); 
        }
       
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 首先我们介绍二叉树先序序列化的方式,假设序列化的结果字符串为str,初始时str等于空字符串。先序遍历二叉树,如果...
    X_Y阅读 80评论 0 0
  • 描述: 设计一个算法,并编写代码来序列化和反序列化二叉树。将树写入一个文件被称为“序列化”,读取文件后重建同样的二...
    mecury阅读 757评论 0 1
  • 描述 设计一个算法,并编写代码来序列化和反序列化二叉树。将树写入一个文件被称为“序列化”,读取文件后重建同样的二叉...
    6默默Welsh阅读 5,652评论 0 0
  • 在程序里构造的二叉树,其实存在于内存当中。逻辑结构可以用纸笔画出。 很多时候,我们希望把二叉树以文件的形式记录下来...
    Explorer_Mi阅读 995评论 0 0
  • ----秋心妈 看了多位妈妈的鸡娃历程,感觉妈妈们的教育之路真是任重而道远啊,我有时很茫然,记得小时候妈妈...
    肖恩2008阅读 291评论 0 0