File tree 2 files changed +31
-4
lines changed
2 files changed +31
-4
lines changed Original file line number Diff line number Diff line change
1
+ from typing import TypeVar
2
+
3
+ T = TypeVar ('T' )
4
+
5
+
6
+ class TreeNode (object ):
7
+ def __init__ (self , data : T , left = None , right = None ):
8
+ self .data = data
9
+ self .left = left
10
+ self .right = right
11
+
12
+ def __str__ (self ):
13
+ return "{left} <-- {data} --> {right}" .format (
14
+ left = "NULL" if self .left is None else self .left .data ,
15
+ right = "NULL" if self .right is None else self .right .data ,
16
+ data = self .data
17
+ )
18
+
19
+
20
+ def print_tree (root : TreeNode ):
21
+ if root is None :
22
+ return
23
+ print (root )
24
+ print_tree (root .left )
25
+ print_tree (root .right )
Original file line number Diff line number Diff line change 1
- from test import Node , print_tree
2
1
from collections import deque
3
2
3
+ from Tree import TreeNode , print_tree
4
+
5
+
4
6
def deserialize (data ):
5
7
"""Decodes your encoded data to tree.
6
8
@@ -12,18 +14,18 @@ def deserialize(data):
12
14
13
15
data = data .split ("," )
14
16
q = deque ()
15
- root = Node (data [0 ])
17
+ root = TreeNode (data [0 ])
16
18
q .append (root )
17
19
i = 1
18
20
19
21
while i < len (data ):
20
22
parent = q .popleft ()
21
23
if data [i ] != '#' :
22
- parent .left = Node (data [i ])
24
+ parent .left = TreeNode (data [i ])
23
25
q .append (parent .left )
24
26
i += 1
25
27
if data [i ] != '#' :
26
- parent .right = Node (data [i ])
28
+ parent .right = TreeNode (data [i ])
27
29
q .append (parent .right )
28
30
i += 1
29
31
return root
You can’t perform that action at this time.
0 commit comments