2019-08-24 LeetCode297. ツリーのシーケンス化と逆シーケンス化
1101 ワード
13 min、一回合格して、デバッグしていません
class Codec:
def serialize(self, root:TreeNode):
"""Encodes a tree to a single string.
:type root: TreeNode
:rtype: str
"""
res=[]
self.dfs(root,res)
return ','.join(res)
def dfs(self,root:TreeNode,res:List):
if not root:res.append('#')
else:
res.append(str(root.val))
self.dfs(root.left,res)
self.dfs(root.right,res)
def deserialize(self, data:str):
"""Decodes your encoded data to tree.
:type data: str
:rtype: TreeNode
"""
if not data:return None
res=data.split(',')
return self.dfs_de(res)
def dfs_de(self,res):
if res[0]=='#':
res.pop(0)
return None
else:
root=TreeNode(int(res[0]))
res.pop(0)
root.left=self.dfs_de(res)
root.right=self.dfs_de(res)
return root