输出二叉树每层节点数量

/* 输出二叉树每层的节点*/
typedef struct node{
	struct node* left;
	struct node* right;
	node(){
		left = NULL;
		right = NULL;
	};
} node,*nodeptr;
 
void count(vector<node> layerlist){
	if (layerlist.size() == 0)
		return;
	vector<node> vec;
	int countt = 0;
	for(auto c : layerlist){//对该层每个节点检查,存在一个节点数量加一, 如果该节点有孩子,则将孩子节点加入到下一层节点列表
		countt ++;
		if(c.left)
			vec.push_back(*c.left);
		if(c.right)
			vec.push_back(*c.right);
	}
	cout<<countt<<endl;
	count(vec);//处理下一层节点
}
 int main(){
 	node a;
 	node b;
 	node c;
 	node d;
 	node e;
 	node f;
 	node g;
 	a.left = &b;
 	a.right = NULL;
 	b.right = &c;
 	b.left = &d;
 	c.left = &e;
 	c.right = &f;
 	d.left = &g;
 	vector<node> aa = { a };
 	count(aa);

 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值