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

2021-09-07 05:21:40 字數 725 閱讀 2865

思路:

1.使用前序遍歷來序列化二叉樹,當碰到子節點為null的時候,用特殊字元』$』來表示。

public class _37_serializebinarytrees 

} /**

* 序列化

*/ public string serialize(treenode root)

private void serialize(treenode root, stringbuilder sb)

} private int index;

/*** 反序列化

*/ public treenode deserialize(string str)

public treenode deserialize(string nums)

treenode node = new treenode(integer.valueof(nums[index++]));

node.left = deserialize(nums);

node.right = deserialize(nums);

return node;

} }

測試用例:

a.功能測試(輸入的二叉樹是完全二叉樹;所有節點都沒有左或右子樹的二叉樹;只有乙個節點的二叉樹;所有節點的值都相同的二叉樹)。

b.特殊輸入測試(指向二叉樹根節點的指標為nullptr指標)。

參考:

劍指offer 面試題37 序列化二叉樹

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

劍指Offer面試題37

這題的難點在於理解單鏈表中如果有第乙個公共節點,那麼其後的所有節點都重合。public class listnode public class solution 記錄它們的長度可以不用兩個輔助棧,讓長的先走,可以同時到鏈尾 int nlen1 getlistlength phead1 int nle...

面試題37 序列化二叉樹

題目 請實現兩個函式,分別用來序列化和反序列化二叉樹。演算法思想 根據前序遍歷規則完成序列化與反序列化。所謂序列化指的是遍歷二叉樹為字串 所謂反序列化指的是依據字串重新構造成二叉樹。依據前序遍歷序列來序列化二叉樹,因為前序遍歷序列是從根結點開始的。當在遍歷二叉樹時碰到null指標時,這些null指標...