#3 google面试题 例子

给定一个二叉树

要求:

  • 编写序列化函数serialize(root),表示从根路径开始序列化,将该二叉树序列化为字符串 s
  • 编写反序列化函数deserialize(s),将该二叉树还原为对应的对象。

例子

给定的二叉树如下:

1
2
3
4
5
class :
def __init__(self, val, left=None, right=None)
self.val = val
self.left = left
self.right = right

用下列代码验证是否有效

1
2
3
node = Node('root', Node('left', Node('left.left')), Node('right'))

assert deserialize(serialize(node)).left.left.val == 'left.left'