Easy to follow, Python, using queue
\n    def serialize(self, root: TreeNode) -> str:\n        """Encodes a tree to a single string.\n        """\n        if not root: return \'\'\n        q = col
```\n    def serialize(self, root: TreeNode) -> str:\n        """Encodes a tree to a single string.\n        """\n        if not root: return \'\'\n        q = collections.deque([root])\n        res = []\n        while q:\n            node = q.popleft()\n            if node:\n                q.append(node.left)\n                q.append(node.right)\n                res.append(str(node.val))\n            else:\n                res.append(\'None\')\n        return \' \'.join(res)\n    \n    \n    def deserialize(self, data: str) -> TreeNode:\n        """Decodes your encoded data to tree.\n        """\n        if not data: return None\n        data_q = collections.deque(data.split(\' \'))\n        root = TreeNode(int(data_q.popleft()))\n        tree_q = collections.deque([root])\n        while tree_q:\n            node = tree_q.popleft()\n            left = data_q.popleft()\n            right = data_q.popleft()\n            if left != \'None\':\n                left_node = TreeNode(int(left))\n                node.left = left_node\n                tree_q.append(left_node)\n            if right != \'None\':\n                right_node = TreeNode(int(right))\n                node.right = right_node\n                tree_q.append(right_node)\n        return root\n```
['Python']