求二叉树深度

 public int findDeep2(BiTree root)  
  {  
     if(root == null)  
         return 0;  
      
     BiTree current = null;  
     LinkedList<BiTree> queue = new LinkedList<BiTree>();  
     queue.offer(root);  
     int cur,last;  
     int level = 0;  
     while(!queue.isEmpty())  
     {  
         cur = 0;//记录本层已经遍历的节点个数  
         last = queue.size();//当遍历完当前层以后,队列里元素全是下一层的元素,队列的长度是这一层的节点的个数  
         while(cur < last)//当还没有遍历到本层最后一个节点时循环  
         {  
             current = queue.poll();//出队一个元素  
             cur++;  
             //把当前节点的左右节点入队(如果存在的话)  
             if(current.left != null)  
             {  
                 queue.offer(current.left);  
             }  
             if(current.right != null)  
             {  
                 queue.offer(current.right);  
             }  
         }  
         level++;//每遍历完一层level+1  
     }  
     return level;  
  }  
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容