Skip to content

Commit f6e8aab

Browse files
authored
Create 297-Serialize-and-Deserialize-Binary-Tree.py
1 parent 2478fc7 commit f6e8aab

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
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+
8+
class Codec:
9+
10+
def serialize(self, root):
11+
res = []
12+
13+
def dfs(node):
14+
if not node:
15+
res.append("N")
16+
return
17+
res.append(str(node.val))
18+
dfs(node.left)
19+
dfs(node.right)
20+
dfs(root)
21+
return ",".join(res)
22+
23+
def deserialize(self, data):
24+
vals = data.split(",")
25+
self.i = 0
26+
27+
def dfs():
28+
if vals[self.i] == "N":
29+
self.i += 1
30+
return None
31+
node = TreeNode(int(vals[self.i]))
32+
self.i += 1
33+
node.left = dfs()
34+
node.right = dfs()
35+
return node
36+
return dfs()

0 commit comments

Comments
 (0)