题目
给定一棵二叉树,实现序列化与反序列化。
序列化的方式:
* 根据先序遍历序列化
* 根据后序遍历序列化
* 根据层序遍历序列化
先序遍历二叉树进行序列化:
1. 假设序列化的结果为 str ,初始时str为空字符串2. 先序遍历二叉树时如果遇到空节点,在str末尾加上“#,”
3. 如果遇到不为空的结点,假设节点值为3,就在str的末尾加上“3,”。
如下所示
str = 1,2,#,#,#,;
代码实现
String Serialize(TreeNode node) {
if(node == null) {
return "#,";
}
StringBuilder res = new StringBuilder();
res.append(node.val);
res.append(",");
res.append(Serialize(node.left));
res.append(Serialize(node.right));
return r