写一个函数,打印二叉树中某层的所有结点

本文介绍了如何编写一个函数,用于打印二叉树中特定层级的所有节点。提供了两种方法,一种是利用递归,另一种是采用层次遍历,借助队列来实现。在递归方法中,从给定节点开始,递归处理其左子树和右子树的下一层节点。在层次遍历方法中,通过两个队列分别存储节点和它们所在的层级,确保同一层的节点在同一行打印。
摘要由CSDN通过智能技术生成

二叉树结点定义:
struct Node
{
    int v;
    Node* left;
    Node* right;
};

函数原型:
void print_node_at_level(Node* node, int level);

说明:
将level层的结点中所保存的值打印在同一行。

 

思路:

       可以利用递归方法,打印node所指结点为根节点的第level层的结点,可以打印node的左右子树的第level-1层的结点,一次递归。

       还可以用层次遍历的方法打印某一层的结点,要借助两个队列实现,一个队列一次存放每层的结点,另一个队列一次存放对应结点所在的层数。

#include <iostream>
#include <queue>


using namespace std;

struct Node
{
	int v; 
	Node* left;
	Node* right;
};

void print_node_at_level(Node* node, int level)
{
	if( node
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值