class Node: def __init__(self,nodeValue): self.subNodes = [] self.value = nodeValue def addSubNode(self,node): self.subNodes.append(node) def view(self,depth=0): if self.subNodes: print( "{}[{}]".format(" " * depth , self.value) ) else: print(" " * depth , self.value) depth += 1 for node in self.subNodes: node.view(depth)