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

Posted FigSprite

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请实现两个函数,分别用来序列化和反序列化二叉树相关的知识,希望对你有一定的参考价值。

import java.util.LinkedList;
import java.util.Queue;
public class Solution {
     String Serialize(TreeNode root) {
		   StringBuilder sb = new StringBuilder();
		   if(root==null) {
			   sb.append("#,");
			   return sb.toString();
		   }
		   sb.append(String.valueOf(root.val));
		   sb.append(‘,‘);
		   sb.append(Serialize(root.left));
		   sb.append(Serialize(root.right));
		   return sb.toString();
		   
		  
	   }
	   TreeNode Deserialize(String str) {
	        String[] values = str.split(",");
	        Queue<String> queue = new LinkedList<>();
	        for(int i=0;i<values.length;i++) {
	        	queue.offer(values[i]);
	        }
	        return reconPreOrder(queue);
	   }
   
	private TreeNode reconPreOrder(Queue<String> queue) {
		String value = queue.poll();
		if(value.equals("#")) {
			return null;
		}
		TreeNode head = new TreeNode(Integer.valueOf(value));
		head.left = reconPreOrder(queue);
		head.right = reconPreOrder(queue);
		return head;
	}
}

  

以上是关于请实现两个函数,分别用来序列化和反序列化二叉树的主要内容,如果未能解决你的问题,请参考以下文章

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

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

剑指offer系列35----序列化二叉树

二叉树的序列化和反序列化

序列化二叉树

序列化二叉树