Skip to content

Commit c5e75bb

Browse files
committed
Tree utils
1 parent 3aa67bd commit c5e75bb

File tree

2 files changed

+31
-4
lines changed

2 files changed

+31
-4
lines changed

Tree/__init__.py

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
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)

test2.py

+6-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
from test import Node, print_tree
21
from collections import deque
32

3+
from Tree import TreeNode, print_tree
4+
5+
46
def deserialize(data):
57
"""Decodes your encoded data to tree.
68
@@ -12,18 +14,18 @@ def deserialize(data):
1214

1315
data = data.split(",")
1416
q = deque()
15-
root = Node(data[0])
17+
root = TreeNode(data[0])
1618
q.append(root)
1719
i = 1
1820

1921
while i < len(data):
2022
parent = q.popleft()
2123
if data[i] != '#':
22-
parent.left = Node(data[i])
24+
parent.left = TreeNode(data[i])
2325
q.append(parent.left)
2426
i += 1
2527
if data[i] != '#':
26-
parent.right = Node(data[i])
28+
parent.right = TreeNode(data[i])
2729
q.append(parent.right)
2830
i += 1
2931
return root

0 commit comments

Comments
 (0)