비재 귀적으로 이진 트리의 높이를 해결 Java

아이디어

그래프의 너비 우선 알고리즘과 유사하게 널 포인터는 레벨 순회 끝의 신호입니다.

암호

int findHeightOfBinaryTree(BinaryTreeNode root){
    
    
  int level = 1;
  LLQueue q = new LLQueue();
  if(root == null)
    return 0;
  q.enQueue(root);
  //作为分层遍历的标志
  q.enQueue(null);
  while(!q.isEmpty()){
    
    
    root = q.deQueue();
    //当前层遍历结束
    if(root == null){
    
    
      //如果该层非最深层,则为该层增加一个标记
      if(!q.isEmpty())
        q.enQueue(null);
      level++;
    }else{
    
    
      if(root.getLeft() != null){
    
    
        q.enQueue(root.getLeft());
      }
      if(root.getRight() != null){
    
    
        q.enQueue(root.getRight());
      }
    }
    return level;
  }

}

추천

출처blog.csdn.net/weixin_37632716/article/details/110563795