Serializzazzione e deserializzazione, problema proposto da Google

Questo problema è stato proposto da Google.

Data la radice di un albero binario, implemeta una funzione serialize(root), che serializza l’albero in una stringa, e deserialize(s), che deserializza la stringa nuovamente nell’albero.

For example, given the following Node class
Per esempio, data la seguente classe Node

class Node:
    def __init__(self, val, left=None, right=None):
        self.val = val
        self.left = left
        self.right = right

Il seguente test dovrebbe essere superato:

node = Node('root', Node('left', Node('left.left')), Node('right'))
assert deserialize(serialize(node)).left.left.val == 'left.left'

Good job!