序列化二叉树

来源:互联网 发布:重庆行知技工学校 编辑:程序博客网 时间:2024/05/29 19:25

题目

请实现两个函数,分别用来序列化和反序列化二叉树

思路

前序遍历(中左右),递归

/*public class TreeNode {    int val = 0;    TreeNode left = null;    TreeNode right = null;    public TreeNode(int val) {        this.val = val;    }}*/public class Solution {    int index = -1;    String Serialize(TreeNode root) {        String s = "";        if(root==null)            return "#,";        s += root.val+",";        s += Serialize(root.left);        s += Serialize(root.right);        return s;  }    TreeNode Deserialize(String str) {       index++;       String[] sstr = str.split(",");        if(index>=sstr.length)            return null;        TreeNode node = null;        while(!sstr[index].equals("#")){            node = new TreeNode(new Integer(sstr[index]));            node.left = Deserialize(str);            node.right = Deserialize(str);        }        return node;  }}
原创粉丝点击