Serialize and Deserialize Binary Tree
Try to solve the Serialize and Deserialize Binary Tree problem.
Statement
Serialize a given binary tree to a file and deserialize it back to a tree. Make sure that the original and the deserialized trees are identical.
-
Serialize: Write the tree to a file.
-
Deserialize: Read from a file and reconstruct the tree in memory.
Serialize the tree into a list of integers, and then, deserialize it back from the list to a tree. For simplicity’s sake, there’s no need to write the list to the files.
Constraints:
- The number of nodes in the tree is in the range .
-
Node.value
Examples
Understand the problem
Let’s take a moment to make sure you’ve correctly understood the problem. The quiz below helps you check if you’re solving the correct problem:
Serialize and Deserialize Binary Tree
What is the serialized output of this tree using level order traversal?
__ 350
|
__ 75 ______
| |
25 _ ___ 200
| |
50 100
[350, 75, 25, 50, 200, 100]
[350, 75, 25, 200, 50, 100]
[25, 50, 75, 100, 200, 350]
[50, 25, 100, 200, 75, 350]
Figure it out!
We have a game for you to play. Rearrange the logical building blocks to develop a clearer understanding of how to solve this problem.
Try it yourself
Implement your solution in serialize_deserialize.py
in the following coding playground.
# Definition of a binary tree node## class TreeNode:# def __init__(self, data):# self.data = data# self.left = None# self.right = Nonefrom ds_v1.BinaryTree.BinaryTree import TreeNodedef serialize(root):# Replace this placeholder return statement with your codereturn Nonedef deserialize(stream):# Replace this placeholder return statement with your codereturn None