您的位置:首页 > 编程语言 > Java开发

二叉树的序列化和反序列化java借助队列实现

2017-01-01 22:39 232 查看
以先序遍历方式完成二叉树的序列化

public String serialize(TreeNode root){
if(root==null){
return "#,";
}
return root.val+","+serialize(root.left)+serialize(root.right);
}


反序列化

public TreeNode deSerialize(String str){
Queue<String> queue = new LinkedList<String>();
String[] deals = str.split(",");
for(int i=0;i<deals.length;i++){
queue.add(deals[i]);
}
TreeNode root = preOrder1(queue);
return root;

}
TreeNode preOrder(Queue<String> q){
String deal = q.poll();
if("#".equals(deal)){
return null;
}
TreeNode node = new TreeNode(Integer.valueOf(deal));
node.left = preOrder(q);
node.right = preOrder(q);
return node;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐