剑指offer-序列化二叉树
请实现两个函数,分别用来序列化和反序列化二叉树。
前序遍历
public class Solution { int index =0; String Serialize(TreeNode root) { StringBuilder sb = new StringBuilder(); if(root ==null){ sb.append("#,"); return sb.toString(); } sb.append(root.val +","); sb.append(Serialize(root.left)); sb.append(Serialize(root.right)); return sb.toString(); } TreeNode Deserialize(String str) { String[] s = str.split(","); index =-1; return DeserHelp(s); } TreeNode DeserHelp(String[] str){ TreeNode root = null; index++; if(!"#".equals(str[index])){ root = new TreeNode(Integer.valueOf(str[index])); root.left = DeserHelp(str); root.right = DeserHelp(str); } return root; } }
还可用层次遍历