對於序列化:使用前序遍歷,遞迴的將二叉樹的值轉化為字元,並且在每次二叉樹的結點不為空時,在轉化val所得的字元之後新增乙個』 , '作為分割。對於空節點則以 『#』 代替。
對於反序列化:按照前序順序,遞迴的使用字串中的字元建立乙個二叉樹
# -*- coding:utf-8 -*-
# class treenode:
# def __init__(self, x):
# self.val = x
# self.left = none
# self.right = none
class solution:
def __init__(self):
self.cur = -1
def serialize(self, root):
# write code here
if not root:
return '#'
return str(root.val) + ',' + self.serialize(root.left) + ',' + self.serialize(root.right)
def deserialize(self, s):
# write code here
self.cur += 1
l = s.split(',')
if self.cur>=len(s):
return none
root = none
if l[self.cur]!='#':
root = treenode(int(l[self.cur]))
root.left = self.deserialize(s)
root.right = self.deserialize(s)
return root
請實現兩個函式,分別用來序列化和反序列化二叉樹
請實現兩個函式,分別用來序列化和反序列化二叉樹 二叉樹的序列化是指 把一棵二叉樹按照某種遍歷方式的結果以某種格式儲存為字串,從而使得記憶體中建立起來的二叉樹可以持久儲存。序列化可以基於先序 中序 後序 層序的二叉樹遍歷方式來進行修改,序列化的結果是乙個字串,序列化時通過 某種符號表示空節點 以 表示...
請實現兩個函式,分別用來序列化和反序列化二叉樹
二叉樹的序列化是指 把一棵二叉樹按照某種遍歷方式的結果以某種格式儲存為字串,從而使得記憶體中建立起來的二叉樹可以持久儲存。序列化可以基於先序 中序 後序 層序的二叉樹遍歷方式來進行修改,序列化的結果是乙個字串,序列化時通過 某種符號表示空節點 以 表示乙個結點值的結束 value 二叉樹的反序列化是...
序列化和反序列化二叉樹
請實現兩個函式,分別用來序列化和反序列化二叉樹。基本思想很簡單,序列化就是用某一種遍歷方法將二叉樹元素儲存在字串陣列中,當然要乙個個元素分離,分得清誰是誰。反序列化就是把儲存在字串陣列中的元素進行重構,使之成為二叉樹。我們不妨選擇前序遍歷的思想進行搜尋與重構。本題的關鍵是如何對元素進行儲存,可以放在...