297 二叉樹的序列化與反序列化

2021-09-24 13:43:30 字數 1884 閱讀 6742

題目

序列化是將乙個資料結構或者物件轉換為連續的位元位的操作,進而可以將轉換後的資料儲存在乙個檔案或者記憶體中,同時也可以通過網路傳輸到另乙個計算機環境,採取相反方式重構得到原資料。

請設計乙個演算法來實現二叉樹的序列化與反序列化。這裡不限定你的序列 / 反序列化演算法執行邏輯,你只需要保證乙個二叉樹可以被序列化為乙個字串並且將這個字串反序列化為原始的樹結構。

示例:你可以將以下二叉樹:

1

/ \2 3

/ \4 5

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

【困難】

【分析1】層次遍歷來做序列化;然後從樹的左到右插入子樹

class codec:

def serialize(self,root):

"""encodes a tree to a single string.

:type root: treenode

:rtype: str

"""if root==none:

return

data=

nodes=[root]

while nodes:

node=nodes.pop(0)

if node !="#":

else:

continue

if node.left:

else:

if node.right:

else:

for i in range(len(data)-1,0,-1):

if data[i]=='':

data.pop() #將data後面的none去掉

【分析2】拋卻層次遍歷,還可以用前序遍歷來做,也是很簡單

297 二叉樹的序列化與反序列化

序列化是將乙個資料結構或者物件轉換為連續的位元位的操作,進而可以將轉換後的資料儲存在乙個檔案或者記憶體中,同時也可以通過網路傳輸到另乙個計算機環境,採取相反方式重構得到原資料。請設計乙個演算法來實現二叉樹的序列化與反序列化。這裡不限定你的序列 反序列化演算法執行邏輯,你只需要保證乙個二叉樹可以被序列...

297 二叉樹的序列化與反序列化

二叉樹的序列化與反序列化 序列化是將乙個資料結構或者物件轉換為連續的位元位的操作,進而可以將轉換後的資料儲存在乙個檔案或者記憶體中,同時也可以通過網路傳輸到另乙個計算機環境,採取相反方式重構得到原資料。請設計乙個演算法來實現二叉樹的序列化與反序列化。這裡不限定你的序列 反序列化演算法執行邏輯,你只需...

297 二叉樹的序列化與反序列化(Python)

序列化是將乙個資料結構或者物件轉換為連續的位元位的操作,進而可以將轉換後的資料儲存在乙個檔案或者記憶體中,同時也可以通過網路傳輸到另乙個計算機環境,採取相反方式重構得到原資料。請設計乙個演算法來實現二叉樹的序列化與反序列化。這裡不限定你的序列 反序列化演算法執行邏輯,你只需要保證乙個二叉樹可以被序列...