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

2021-10-09 05:31:52 字數 1062 閱讀 1108

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

示例:

你可以將以下二叉樹:

1/ \

2 3

/ \4 5

序列化為 "[1,2,3,null,null,4,5]"

層序遍歷,使用乙個佇列輔助
queue 的 push pop front 

to_string

複雜度

o時間複雜度

o(n)

空間複雜度

o(n)

/**

* definition for a binary tree node.

* struct treenode

* };

*/class

codec

else

}return ret;

}// decodes your encoded data to tree.

treenode*

deserialize

(string data)

else

if(data[i]

=='-'

)else

if(data[i]

=='+'

)else

if(data[i]

>=

'0'&&data[i]

<=

'9')

else

else

else

position++;}

temp=0;

ispositive=

true;}

if(position==2)

}return head;}}

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

// codec codec;

// 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 這個題目出的很籠統,沒有任何規定,很是奇怪,在這裡利用了輸入輸出流解題。definition for a binary tree node.struct tr...