26 lines
761 B
Python
26 lines
761 B
Python
class Codec:
|
|
|
|
def serialize(self, root):
|
|
preorder = []
|
|
|
|
def helper(node):
|
|
if node:
|
|
preorder.append(node.val)
|
|
helper(node.left)
|
|
helper(node.right)
|
|
helper(root)
|
|
return ' '.join(map(str, preorder))
|
|
|
|
|
|
def deserialize(self, data):
|
|
vals = collections.deque(int(val) for val in data.split())
|
|
|
|
def build(minval, maxval):
|
|
if vals and minval < vals[0] < maxval:
|
|
val = vals.popleft()
|
|
node = TreeNode(val)
|
|
node.left = build(minval, val)
|
|
node.right = build(val, maxval)
|
|
return node
|
|
|
|
return build(float('-infinity'), float('infinity')) |