请移步《二叉树我的爱》这篇博文https://blog.youkuaiyun.com/lanyao961220/article/details/105255075
下面的方法🙅♀️
人生处处是惨痛经历~
思路就是:用一个队列存每一层的节点,计算和,然后用另外一个队列存下一层的节点,交换两个队列
function sum(root){
let que=[],newque=[],result=[];
if(root!==null){
que.push(root);
}else{
return [0];
}
do{
let sum=0;
que.forEach(function(item){
sum+=item.value;
})
result.push(sum);
while(que.length!=0){
let node=que.shift();
if(node.l!==null){
newque.push(node.l);
}
if(node.r!==null){
newque.push(node.r);
}
}
let temp=newque;
newque=que;
que=temp;
}while(que.length!=0);
return result;
}
let r={
l:{
l:{
value:4,
l:null,
r:null
},
r:{
value:5,
l:null,
r:null
},
value:2
},
r:{
l:{
value:6,
l:null,
r:null
},
r:null,
value:3
},
value:1
};
let t=sum(r);
console.log(t);//[1,5,15]