完全二叉树的定义是只有最后一行可以不是满的,这一行的所有节点均是从左往右放置的。
现在大部分算法都是BFS的层次遍历,有没有递归的方法的呢?
现在找到的比较接近的递归算法是这样的
1 bool isFullTree(tree *T)
2 {
3 if(T!==NULL){
4 if(T->rchild!=NULL&&T->lchild==NULL)
5 return false;
6 isFullTree(T->lchild);
7 isFullTree(T->rchild);
8 }
9 return true;
10 }但是这里的有一个反例,如果是一个深度为3的二叉树,最后一行的2个节点全部在右侧,左侧那棵树在最后一行没有节点的时候,这个算法依旧会判断为完全二叉树。
求解如何修正。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/3598/viewspace-3148655/ ,如需转载,请注明出处,否则将追究法律责任。