《剑指offer》序列化二叉树
生活随笔
收集整理的這篇文章主要介紹了
《剑指offer》序列化二叉树
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目:請實現兩個函數,分別用來序列化和反序列化二叉樹
解析:首先存儲二叉樹的先序遍歷,遇到null就添加”#,” 否則添加“值,”。構件二叉樹的時候也是用先序遍歷構件。
/* public class TreeNode {int val = 0;TreeNode left = null;TreeNode right = null;public TreeNode(int val) {this.val = val;} } */ import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import java.util.Queue; public class Solution {public int index = -1;String Serialize(TreeNode root) {StringBuffer sb = new StringBuffer();if(root == null){//遇到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) {index++;int len = str.length();if(index >= len){return null;}String[] strr = str.split(",");TreeNode node = null;if(!strr[index].equals("#")){//節點不是"#",意味著該節點不是null//遞歸構建節點node = new TreeNode(Integer.valueOf(strr[index]));node.left = Deserialize(str);//遞歸創建leftnode.right = Deserialize(str);遞歸創建right}return node;} }總結
以上是生活随笔為你收集整理的《剑指offer》序列化二叉树的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《剑指offer》给定一颗二叉搜索树,请
- 下一篇: 把十进制转为二进制到16进制