序列化二叉樹 劍指Offer

2022-08-29 00:15:26 字數 696 閱讀 9651

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

序列化就按先序遍歷,遇到空指標也要存下來,遞迴呼叫,stringbuilder

反序列化是同樣的遞迴呼叫,不過要考慮引數的傳遞,生成的treenode要返回

注意:對sting的遍歷,每次遞迴都要往後遍歷乙個字元,如果將這個位置資訊point通過引數傳入的話,就會造成函式無法正常遍歷string,此時,我們可以將位置資訊設定為類的成員變數,每次遞迴時都要遞增,這樣既可滿足條件

/*

public class treenode }*/

public class solution

public void myser(stringbuilder sb, treenode root)

myser(sb, root.left);

myser(sb, root.right);

return;

} int point = -1;

treenode deserialize(string str)

treenode root = mydeser(strarr);

return root;

}public treenode mydeser(string str)

if (!str[point].equals("$")) else }}

劍指offer 序列化二叉樹

請實現兩個函式,分別用來序列化和反序列化二叉樹。首先得理解題目的意思,序列化就是返回乙個帶有 和逗號的字串。反序列化就是根據帶有 和逗號的字串返回一棵二叉樹。比如對於二叉樹 1 2 3 4 5 6 7來講,序列化的結果是1,2,3,4,7,5,而反序列化的結果則是輸出一棵二叉樹。public cla...

劍指Offer 序列化二叉樹

請實現兩個函式,分別用來序列化和反序列化二叉樹 根據前面的面試題重建二叉樹,我們知道可以從前序遍歷和中序遍歷構造出一棵二叉樹。受此啟發,我們可以先把一棵二叉樹序列化成乙個前序遍歷序列和乙個中序序列的結合,然後再反序列化時通過這兩個序列重構出原二叉樹。但是這個思路有兩個缺點。乙個缺點是該方法要求二叉樹...

劍指offer 序列化二叉樹

請實現兩個函式,分別用來序列化和反序列化二叉樹 首先這道題目是要有兩個問題,第乙個是把一棵二叉樹按照前序遍歷的方式變成乙個字串。第二個是把乙個字串變成乙個二叉樹。對於第乙個問題來說,我們要對這棵樹進行乙個前序遍歷,按照中左右的方式放入列表中,如果節點為空,則插入 最後.join 來實現列表到字串的轉...