Talentd
FleetCode

297. Serialize and Deserialize Binary Tree

Hard61.1% acceptance23 companies

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.

Clarification: The input/output format is the same as how LeetCode serializes a binary tree. You do not necessarily need to follow this format, so please be creative and come up with different approaches yourself.

Example 1:

Input: root = [1,2,3,null,null,4,5]
Output: [1,2,3,null,null,4,5]

Example 2:

Input: root = []
Output: []

Constraints:

  • The number of nodes in the tree is in the range [0, 104].
  • -1000 <= Node.val <= 1000
13:48
Still stuck?Read 3 approaches, or watch a walkthrough.
Open solution
Loading editor…
1# Definition for a binary tree node.
2# class TreeNode(object):
3# def __init__(self, x):
4# self.val = x
5# self.left = None
6# self.right = None
7
8class Codec:
9
10 def serialize(self, root):
11 """Encodes a tree to a single string.
12
13 :type root: TreeNode
14 :rtype: str
15 """
16
17
18 def deserialize(self, data):
19 """Decodes your encoded data to tree.
20
21 :type data: str
22 :rtype: TreeNode
23 """
24
25
26# Your Codec object will be instantiated and called as such:
27# ser = Codec()
28# deser = Codec()
29# ans = deser.deserialize(ser.serialize(root))
Starter codePython 3Spaces: 4
Examples
Input
[1,2,3,null,null,4,5]
Input
[]
Your code is saved on this device.Solution