I understand slice notation. But need some help here.
Below code traverses and prints a binary tree. Can somebody explain what self.preorder_print(self.root, "")[:-1]
line is doing here inside the print_tree
function?
class Node(object):
def __init__(self, value):
self.value = value
self.left = None
self.right = None
class BinaryTree(object):
def __init__(self, root):
self.root = Node(root)
def search(self, find_val):
return self.preorder_search(self.root, find_val)
def print_tree(self):
return self.preorder_print(self.root, "")[:-1]
def preorder_search(self, start, find_val):
if start:
if start.value == find_val:
return True
else:
return self.preorder_search(start.left, find_val) or self.preorder_search(start.right, find_val)
return False
def preorder_print(self, start, traversal):
if start:
traversal += ("-" + str(start.value))
traversal = self.preorder_print(start.left, traversal)
traversal = self.preorder_print(start.right, traversal)
return traversal