这是一个函数的代码,该函数使用队列和定界符确定树的高度,但是在运行时,我得到的输出是:“您的程序花了比预期更多的时间”。
注意:“节点”是树的根
class GfG
{
int height(Node node)
{
Node pivot;
int h=0;
Queue<Node> temp = new LinkedList<Node>();
temp.add(node);
temp.add(null);
while(true)
{
if(temp.isEmpty()){break;}
System.out.println("hi");
pivot = temp.poll();
if(pivot != null)
{
if(pivot.left != null)
{
temp.add(pivot.left);
}
else
{
continue;
}
if(pivot.right != null)
{
temp.add(pivot.right);
}
else
{
continue;
}
}
else if(pivot == null)
{
temp.add(null);
h=h+1;
}
}
return h;
}
答案 0 :(得分:0)
您有一个无限循环。当您进入列表中的最后一个元素null
时,将继续弹出并添加它。我没有检查您代码的正确性。