Skip to content

Commit 1edb34e

Browse files
authored
Create serialize_deserialize_narrytree.py
serializing deserializing narry tree .simple bfs
1 parent 24c5f6f commit 1edb34e

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

serialize_deserialize_narrytree.py

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
class Node:
2+
def __init__(self, val):
3+
self.val = val
4+
self.children = []
5+
6+
class Codec:
7+
def serialize(self, root):
8+
if root is None:
9+
return ""
10+
res = [root.val, "#"]
11+
q = collections.deque([root])
12+
while q:
13+
node = q.popleft()
14+
for child in node.children:
15+
res.append(child.val)
16+
q.append(child)
17+
res.append("#")
18+
return ",".join(res)
19+
20+
def deserialize(self, s):
21+
if len(s) == 0:
22+
return
23+
vals = s.split(",")
24+
q = collections.deque()
25+
root = Node(vals[0])
26+
q.append(root)
27+
i = 1
28+
while q:
29+
node = q.popleft()
30+
i += 1
31+
while vals[i] != "#":
32+
child = Node(vals[i])
33+
node.children.append(child)
34+
q.append(child)
35+
i += 1
36+
return root

0 commit comments

Comments
 (0)