**Problem Statement:**
Given the required input arguments, write an efficient algorithm to solve the **Serialize and Deserialize Binary Tree** problem. Implement the required logic as specified by standard definitions for this classic algorithmic challenge.
**Hint / Expected Approach:**
BFS or preorder with null markers
**Edge Cases to Consider:**
- (1) Empty tree
- (2) Tree with all nulls on one side
- (3) Single node
Examples
Example 1
Input:[1,2,3,null,null,4,5], e.g. "1,2,3,null,null,4,5" → same tree
Output:Classic
Explanation: Classic
Example 2
Input:[], "" or "null" → null
Output:Empty
Explanation: Empty
Example 3
Input:[1], "1" → [1]
Output:Single node
Explanation: Single node
Constraints
▪The number of nodes in the tree is in the range [0, 2000]
▪-1000 <= Node.val <= 1000
▪Ensure depth-first or breadth-first traversals are memory-efficient