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;
}
}
二分木の同じ層でノードデータの合計が最大の層を見つけます
おすすめ
転載: blog.csdn.net/weixin_37632716/article/details/111302222
おすすめ
ランキング