Hi, here's your problem today. This problem was recently asked by Apple: You are given a tree, and your job is to print it level-by-level with linebreaks. a / \ b c / \ / \ d e f g The output should be a bc defg Here's a starting point:
from collections import deque
class Node(object):
def __init__(self, val):
self.val = val
self.left = None
self.right = None
def __str__(self):
# Fill this in.
tree = Node('a')
tree.left = Node('b')
tree.right = Node('c')
tree.left.left = Node('d')
tree.left.right = Node('e')
tree.right.left = Node('f')
tree.right.right = Node('g')
print tree
# a
# bc
# defg