【发布时间】:2019-03-31 20:18:58
【问题描述】:
这总是只产生一个while循环:
def height(self):
if self.root is None:
return 0
height = -1
q = self.Queue()
q.enqueue(self.root)
while not q.is_empty():
size = self.__len__()
height += 1
while size > 0:
node = q.dequeue()
if node.left is not None:
q.enqueue(node.left)
if node.right is not None:
q.enqueue(node.right)
size -= 1
return height
您是否有任何其他想法(或想法如何更改此代码)以返回二叉树的正确高度?
len 是树中所有节点的个数,self.Queue 是类的子类,具有方法高度。
【问题讨论】:
-
请发帖minimal reproducible example。什么是
__len__,什么是self.Queue? -
len 是树中所有节点的个数,self.Queue 是类的子类,方法高度。
-
请edit您的问题添加信息。
-
我已经完成了
-
您还应该在代码的每个部分中添加一些关于您打算做什么的说明。我花了一段时间才弄清楚您打算在外循环的每次迭代中将队列中的节点“推进”一层。
标签: python binary-tree