In Meta Messenger infrastructure, tree-shaped data may need to be converted into a string for transport and rebuilt later. Implement functions to serialize a binary tree into a string and deserialize that string back into the original tree.
A correct solution must preserve both node values and tree structure, including missing children.
serialize: the root of a binary tree where each node has fields val, left, and rightserialize: a string representation of the treedeserialize: a string produced by serializedeserialize: the reconstructed root nodeUse the string format produced by a level-order traversal with # representing null children and values separated by commas.
def serialize_deserialize(root):