简述
二叉树的层序遍历网上大部分都是使用队列的出队和入队来实现的,这次我用三行代码递归实现二叉树的层序遍历....层序
下图是一个简单的二叉树,层序就是一行一行的往下读取,这个二叉树的层序结果便是:
1234567
(图画的比较丑,强迫症看着难受,看官忍一下)
递归分析
要想使用递归,必须有两个条件:...函数参数类型相同
递归必须有出口
在二叉树中找到上面的两个条件,与前中后三种遍历一样,函数参数为节点的,递归出口是当左右孩子为空的时候.传入根节点,然后依次递归访问左右孩子,直至为空....根据上面得出的结论,就可以写出层序遍历的递归代码了,知道了节点层序输出的位置,那么遍历时候直接保存到指定位置,等所有节点遍历结束后再统一输出,这个与前中后遍历是不一样的....这一段代码,是把字符二叉树层序遍历
int tree2str(bitree *b,char *a,int i)
{
if(b->left!