劍指 Offer 37 序列化二叉樹

2022-06-11 18:12:12 字數 894 閱讀 9579

這裡使用層序遍歷產生的序列當成序列化,再使用此序列層序建立二叉樹即對應反序列化。

使用「#」代表空節點,並且各節點的值在序列化的字串中以空格分隔。

注:本題解法不唯一,如使用:先序遍歷進行序列化 + 先序建立反序列化 也是可以的。

1/**

2* definition for a binary tree node.

3* struct treenode

8* };9*/

10class

codec else33}

34return

res;35}

3637

//decodes your encoded data to tree.

38//

層序建立二叉樹

39 treenode* deserialize(string

data) else

6364

if(rvalue == "#"

) else70}

7172

return

node;73}

74};

7576

//your codec object will be instantiated and called as such:

77//

codec codec;

78//

codec.deserialize(codec.serialize(root));

劍指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...