确定树高的代码

时间:2019-05-15 12:09:08

标签: java tree height

这是一个函数的代码,该函数使用队列和定界符确定树的高度,但是在运行时,我得到的输出是:“您的程序花了比预期更多的时间”。

注意:“节点”是树的根

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;
}

1 个答案:

答案 0 :(得分:0)

您有一个无限循环。当您进入列表中的最后一个元素null时,将继续弹出并添加它。我没有检查您代码的正确性。