classCodec:defserialize(self, root):"""
Encodes a tree to a single string.
"""defpostorder(root):return postorder(root.left)+ postorder(root.right)+[root.val]if root else[]return' '.join(map(str, postorder(root)))defdeserialize(self, data):"""
Decodes your encoded data to tree.
"""defhelper(lower =float('-inf'), upper =float('inf')):ifnot data or data[-1]< lower or data[-1]> upper:returnNone
val = data.pop()
root = TreeNode(val)
root.right = helper(val, upper)
root.left = helper(lower, val)return root
data =[int(x)for x in data.split(' ')if x]return helper()