日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

《剑指offer》序列化二叉树

發布時間:2024/1/23 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《剑指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》序列化二叉树的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。