请实现两个函数,分别用来序列化和反序列化二叉树。
示例:
你可以将以下二叉树:
1
/ \
2 3
/ \
4 5序列化为 "[1,2,3,null,null,4,5]"
1.所谓的序列化和反序列化只是找到一种方式来压缩和解压缩而已
class Codec:
def serialize(self, root):
if not root:[]
res=[]
def dfs(root):
if not root:
res.append('*')
return
res.append(root.val)
dfs(root.left)
dfs(root.right)
dfs(root)
return res
def deserialize(self, data):
if not data:return None
index=0
def dfs():
nonlocal index
if data[index]=='*':
index+=1
return None
root=TreeNode(data[index])
index+=1
root.left=dfs()
root.right=dfs()
return root
return dfs()