297. Serialize and Deserialize Binary Tree

def serialize(self, root):
        """Encodes a tree to a single string.

        :type root: TreeNode
        :rtype: str
        """
        def preorder(node):
            if node:
                data.append(str(node.val))
                preorder(node.left)
                preorder(node.right)
            else:
                data.append('#')
        data = []
        preorder(root)
        return ' '.join(data)

    def deserialize(self, data):
        """Decodes your encoded data to tree.

        :type data: str
        :rtype: TreeNode
        """
        def preorder():
            val = next(vals)
            if val == '#':
                return None
            node = TreeNode(int(val))
            node.left = preorder()
            node.right = preorder()
            return node
        vals = iter(data.split())
        return preorder()

results matching ""

    No results matching ""