劍指 Offer 37 序列化二叉樹

2022-09-17 15:30:18 字數 1922 閱讀 8799

請實現兩個函式,分別用來序列化和反序列化二叉樹。

你需要設計乙個演算法來實現二叉樹的序列化與反序列化。這裡不限定你的序列 / 反序列化演算法執行邏輯,你只需要保證乙個二叉樹可以被序列化為乙個字串並且將這個字串反序列化為原始的樹結構。

import j**a.util.arrays;

import j**a.util.linkedlist;

public class codec

public treenode deserialize(string data)

public string rserialize(treenode root)

return root.val + "," + rserialize(root.left) + "," + rserialize(root.right);

}public treenode rdeserialize(linkedlistdatalist)

treenode root = new treenode(integer.parseint(datalist.pollfirst()));

root.left = rdeserialize(datalist);

root.right = rdeserialize(datalist);

return root;

}}class treenode

}

import j**a.util.arrays;

import j**a.util.linkedlist;

public class codec

public treenode deserialize(string data)

public string rserialize(treenode root)

return rserialize(root.left) + "," + rserialize(root.right) + "," + root.val;

}public treenode rdeserialize(linkedlistdatalist)

treenode root = new treenode(integer.parseint(datalist.polllast()));

root.right = rdeserialize(datalist);

root.left = rdeserialize(datalist);

return root;

}}class treenode

}

import j**a.util.arrays;

import j**a.util.linkedlist;

import j**a.util.queue;

public class codec else

}return ans.tostring();

}private treenode build(string data)

return new treenode(integer.parseint(data));

}public treenode deserialize(string data)

string dataarray = data.split(",");

linkedlistdatalist = new linkedlist<>(arrays.aslist(dataarray));

queuequeue = new linkedlist<>();

treenode root = build(datalist.pollfirst());

queue.offer(root);

while (!queue.isempty())

}return root;

}}class treenode

}

劍指Offer 37 序列化二叉樹

請實現兩個函式,分別用來序列化和反序列化二叉樹 例 樹 1 2 3 4 5 6 序列化 1,2,4,3,5,6,容易發現序列化其實就是帶none的前序遍歷。所以題目就是完成乙個前序遍歷將節點值存入列表,遍歷列表按前序生成一棵二叉樹。時間複雜度 o n 空間複雜度 o n from datstru i...

劍指offer37 序列化二叉樹

請實現兩個函式,分別用來序列化和反序列化二叉樹 二叉樹的序列化是指 把一棵二叉樹按照某種遍歷方式的結果以某種格式儲存為字串,從而使得記憶體中建立起來的二叉樹可以持久儲存。序列化可以基於先序 中序 後序 層序的二叉樹遍歷方式來進行修改,序列化的結果是乙個字串,序列化時通過 某種符號表示空節點 以 表示...

《劍指offer》 37 序列化二叉樹

請實現兩個函式,分別用來序列化和反序列化二叉樹。示例 你可以將以下二叉樹 1 2 3 4 5 序列化為 1,2,3,null,null,4,5 層序遍歷,使用乙個佇列輔助queue 的 push pop front to string複雜度 o時間複雜度 o n 空間複雜度 o n definiti...