-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtree.py
39 lines (28 loc) · 931 Bytes
/
tree.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
from collections import deque
class Node:
def __init__(self, value):
self.node = value
self.left = None
self.right = None
def __repr__(self):
return str(self.node)
class BinaryTree:
def __init__(self, root=None):
if (root is None):
return
self.root = Node(root)
@staticmethod
def post_order_traversal(start: Node):
result = []
if (start.left):
result.extend(BinaryTree.post_order_traversal(start.left))
if (start.right):
result.extend(BinaryTree.post_order_traversal(start.right))
result.append(start.node)
return deque(result)
@staticmethod
def printTree(node, level=0):
if node != None:
BinaryTree.printTree(node.left, level + 1)
print(' ' * 4 * level + '-> ' + str(node.node))
BinaryTree.printTree(node.right, level + 1)