JS层次遍历二叉树计算每一层的和

本文介绍了一种使用队列实现的二叉树层级求和算法,通过遍历二叉树的每一层并计算各层节点的总和,最终返回一个包含各层节点和的数组。示例代码展示了如何初始化一个二叉树,并调用sum函数计算各层节点之和。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

请移步《二叉树我的爱》这篇博文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]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值