2
def serialize(self, root: Optional[TreeNode]) -> str:3
"""Encodes a tree to a single string."""9
res.append(str(node.val))18
def deserialize(self, data: str) -> Optional[TreeNode]:19
"""Decodes your encoded data to tree."""22
splitdata = data.split(",")24
for item in splitdata:25
preorder.append(int(item))26
inorder = sorted(preorder)28
for i in range(len(inorder)):29
hash_map[inorder[i]] = i31
def helper(preorder, pstart, pend, inorder, istart, iend):35
return TreeNode(preorder[pstart])37
root = TreeNode(preorder[pstart])39
rootindex = hash_map[preorder[pstart]]41
numleft = rootindex - istart44
preorder, pstart + 1, pstart + numleft, inorder, istart, rootindex - 147
preorder, pstart + numleft + 1, pend, inorder, rootindex + 1, iend52
return helper(preorder, 0, len(preorder) - 1, inorder, 0, len(inorder) - 1)