序列化二叉树

Posted mengchunchen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了序列化二叉树相关的知识,希望对你有一定的参考价值。

请实现两个函数,分别用来序列化和反序列化二叉树

 

Java:

 1 /*
 2 public class TreeNode {
 3     int val = 0;
 4     TreeNode left = null;
 5     TreeNode right = null;
 6 
 7     public TreeNode(int val) {
 8         this.val = val;
 9 
10     }
11 
12 }
13 */
14 public class Solution {
15     private String s ;
16     
17     String Serialize(TreeNode root) {
18         if (root == null){
19             return "#" ;
20         }
21         return root.val + " " + Serialize(root.left) + " " + Serialize(root.right) ;
22     }
23     TreeNode Deserialize(String str) {
24         s = str ;
25         return Deserialize() ;
26     }
27     
28     TreeNode Deserialize() {
29         if (s.length() == 0)
30             return null ;
31         int index = s.indexOf(‘ ‘) ;
32         String node = index == -1 ? s : s.substring(0,index) ;
33         s = index == -1 ? "" : s.substring(index+1) ;
34         if (node.equals("#"))
35             return null ;
36         int val = Integer.valueOf(node) ;
37         TreeNode t = new TreeNode(val) ;
38         t.left = Deserialize() ;
39         t.right = Deserialize() ;
40         return t ;
41     }
42 }

 

以上是关于序列化二叉树的主要内容,如果未能解决你的问题,请参考以下文章

Offer[37] 序列化二叉树

编程实现以上二叉树中序遍历操作,输出遍历序列,求写代码~~

63.序列化二叉树

与二叉树有关的编程题的Java代码实现

50.序列化二叉树

剑指OFFER 序列化二叉树