Find the layer with the largest sum of node data at the same layer in the binary tree

int maxlevelWithMaxSum(BinaryTreeNode root){
    
    
  BinaryTreeNode temp;
  int level = 0;
  int maxLevel = 0;
  LLQueue q = new LLQueue();
  int currentSum = 0;
  int maxSum = 0;
  q.enQueue(root);
  q.enQueue(null);
  while(!q.isEmpty()){
    
    
    temp = q.deQueue();
    if(temp == null){
    
    
      if(currentSum > maxSum){
    
    
        max = currentSum;
        maxLevel = level;
      }
      if(!q.isEmpty()){
    
    
        currentSum = 0;
        q.enQueue(null);
      }
      level++;
    }else{
    
    
      currentSum += temp.getData();
      if(temp.getLeft()!= null){
    
    
        q.enQueue(temp.getLeft());
      }
      if(temp.getRight()!= null){
    
    
        q.enQueue(temp.getRight());
      }
    }
    q.deleteQueue();
    return maxLevel;
  }

}

Guess you like

Origin blog.csdn.net/weixin_37632716/article/details/111302222