序列化的方式:
- 假设序列化的结果为 str ,初始时str为空字符串
- 先序遍历二叉树时如果遇到空节点,在str末尾加上“#!”
- 如果遇到不为空的结点,假设节点值为3,就在str的末尾加上“3!”。
private class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } }
//前序遍历(根左右) private String PreOrderTraverse(TreeNode node) { if (node == null) { return "#!"; } String res = node.val + "!"; res += PreOrderTraverse(node.left); res += PreOrderTraverse(node.right); return res; } //后序遍历(左右根) private String PostOrderTraverse(TreeNode node) { if (node == null) { return "#!"; } String res = PostOrderTraverse(node.left); res += PostOrderTraverse(node.right); res += node.val + "!"; return res; }