层次遍历二叉树-三种不同的方法

  • Post author:
  • Post category:其他



给定一棵二叉树,要求进行分层遍历,每层的节点值单独打印一行,下图给出事例结构:





对此二叉树遍历的结果应该是:


1,


2 , 3


4, 5, 6


7, 8


第一种方法,就是利用递归的方法,按层进行打印,我们把根节点当做第0层,之后层次依次增加,如果我们想打印第二层怎么办呢,利用递归的代码如下:


int print_at_level(Tree T, int level) {
	if (!T || level < 0)
		return 0;
	if (0 == level) {
		cout << T->data << " ";
		return 1;
	}
	return print_at_level(T->lchild, level - 1) + print_at_level(T->rchild, level - 1);
}



版权声明:本文为zzran原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。