297 Serialize and Deserialize Binary Tree

Serialization is the process of converting a data structure or object into a sequence of bits so that it can be stored in a file or memory buffer, or transmitted across a network connection link to be reconstructed later in the same or another computer environment.

Design an algorithm to serialize and deserialize a binary tree. There is no restriction on how your serialization/deserialization algorithm should work. You just need to ensure that a binary tree can be serialized to a string and this string can be deserialized to the original tree structure.

For example, you may serialize the following tree

    1
   / \
  2   3
     / \
    4   5

as

"[1,2,3,null,null,4,5]"

You do not necessarily need to follow this format, so please be creative and come up with different approaches yourself

The Idea:

  • The use of ostringstream and istringstream allows us to cleanly delimit serialized words.

  • Serialization is pretty simply. We just continue to append to referenced string.

  • Deserialization feeds in a referenced istream object which ensures that it will be read in linearly. The key in understand how it works is that we first build a stack of TreeNode's in a pre-order fashion before connecting the tree together.

Python

Last updated

Was this helpful?