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