Serialize and Deserialize BST - Problem
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 search tree. There is no restriction on how your serialization/deserialization algorithm should work. You need to ensure that a binary search tree can be serialized to a string, and this string can be deserialized to the original tree structure.
The encoded string should be as compact as possible.
Input & Output
Example 1 — Basic BST
$
Input:
root = [2,1,3]
›
Output:
"2,1,3"
💡 Note:
Preorder traversal of BST [2,1,3] gives "2,1,3". This compact string can reconstruct the original BST using BST properties.
Example 2 — Single Node
$
Input:
root = [1]
›
Output:
"1"
💡 Note:
A single node BST serializes to just the node value "1".
Example 3 — Empty Tree
$
Input:
root = []
›
Output:
""
💡 Note:
An empty tree serializes to an empty string and deserializes back to null.
Constraints
- The number of nodes in the tree is in the range [0, 104]
- 0 ≤ Node.val ≤ 104
- The input tree is guaranteed to be a binary search tree
Visualization
Tap to expand
Understanding the Visualization
1
Input BST
Binary Search Tree with ordered properties
2
Serialize
Convert to compact string representation
3
Deserialize
Reconstruct original BST from string
Key Takeaway
🎯 Key Insight: BST's ordering property allows reconstruction from preorder traversal alone
💡
Explanation
AI Ready
💡 Suggestion
Tab
to accept
Esc
to dismiss
// Output will appear here after running code