def __str__(self): string = '' if self.__root is None: return 0 level_size = 1 # tree_height = 0 queue = Queue() queue.en_queue(self.__root) while not queue.is_empty(): node = queue.de_queue() string += node.__str__() string += ' ' level_size -= 1 if node.left is not None: queue.en_queue(node.left) if node.right is not None: queue.en_queue(node.right) if level_size == 0: level_size = queue.size() # tree_height += 1 string += '\n' return string
def __str__(self): string = '' queue = Queue() queue.en_queue(self._root) level_size = 1 while not queue.is_empty(): node = queue.de_queue() string += str(node) level_size -= 1 string += ',' if node.left is not None: queue.en_queue(node.left) if node.right is not None: queue.en_queue(node.right) if level_size == 0: level_size = queue.size() string += '\n' return string
def height(self) -> int: """ 计算树的高度 :return: 树的高度 """ if self._root is None: return 0 level_size = 1 tree_height = 0 queue = Queue() queue.en_queue(self._root) while not queue.is_empty(): node = queue.de_queue() level_size -= 1 if node.left is not None: queue.en_queue(node.left) if node.right is not None: queue.en_queue(node.right) if level_size == 0: level_size = queue.size() tree_height += 1 return tree_height