MCPcopy
hub / github.com/HuberTRoy/leetCode / deserialize

Method deserialize

Tree/SerializeAndDeserializeBinaryTree.py:169–220  ·  view source on GitHub ↗

Decodes your encoded data to tree. :type data: str :rtype: TreeNode

(self, data)

Source from the content-addressed store, hash-verified

167
168
169 def deserialize(self, data):
170 """Decodes your encoded data to tree.
171
172 :type data: str
173 :rtype: TreeNode
174 """
175
176 if not data:
177 return []
178
179 data = data[1:-1].split(',')
180
181 root = TreeNode(data[0])
182
183 length = 2
184 data.pop(0)
185 leaves = [root]
186
187 def _deserialize(roots, nodes):
188 _next = []
189 for i in roots:
190 if not i:
191 continue
192
193 if nodes:
194 val = nodes.pop(0)
195 if val == ' None':
196 val = 'null'
197 else:
198 val = int(val)
199
200 i.left = TreeNode(val)
201 _next.append(i.left)
202
203 if nodes:
204 val = nodes.pop(0)
205 if val == ' None':
206 val = 'null'
207 else:
208 val = int(val)
209
210 i.right = TreeNode(val)
211 _next.append(i.right)
212 return _next
213 base = _deserialize(leaves, data[:length])
214 data = data[length:]
215 length *= 2
216 while data:
217 base = _deserialize(base, data[:length])
218 data = data[length:]
219 length *= 2
220 return root
221
222
223# Your Codec object will be instantiated and called as such:

Callers

nothing calls this directly

Calls 3

TreeNodeClass · 0.85
splitMethod · 0.80
popMethod · 0.45

Tested by

no test coverage detected