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

来源:互联网 发布:顶级域名cc 编辑:程序博客网 时间:2024/06/06 12:57

以先序遍历方式完成二叉树的序列化

    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;    }  
0 0
原创粉丝点击