【建议收藏】二叉树的序列化与反序列化
生活随笔
收集整理的這篇文章主要介紹了
【建议收藏】二叉树的序列化与反序列化
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
二叉樹的序列化是指:把一棵二叉樹按照某種遍歷方式的結果以某種格式保存為字符串,從而使得內存中建立起來的二叉樹可以持久保存。序列化可以基于先序、中序、后序、層序的二叉樹遍歷方式來進行修改,序列化的結果是一個字符串,序列化時通過 某種符號表示空節點(#),以 ! 表示一個結點值的結束(value!)。
String Serialize(TreeNode root) {if (root == null)return "#";return root.val + "," + Serialize(root.left) + "," + Serialize(root.right);}二叉樹的反序列化是指:根據某種遍歷順序得到的序列化字符串結果str,重構二叉樹。
/*** 根據index來設置樹節點的value* @param str* @return*/int index = -1;TreeNode Deserialize(String str) {String[] s = str.split(",");index++;int len = s.length;if (index > len)return null;TreeNode node = null;if (!s[index].equals("#")) {node = new TreeNode(Integer.parseInt(s[index]));node.left = Deserialize(str);node.right = Deserialize(str);}return node;} 與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的【建议收藏】二叉树的序列化与反序列化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 初识Nginx服务器
- 下一篇: 【建议收藏】centos更新yum源为阿