static int w =0; //统计每层节点个数,从而找出最大层数 static int Wid[10]={0}; void Width(BiTree T){ if(T == NULL) return; else { w++; Wid[w]++; Width(T->lchild); if(T->lchild) w--; //如果子节点为空的话,不会跳到下一层,w就不会+1,所以从空节点返回不用-1 Width(T->rchild); //也可以在为空时w++再返回,这样的话就不论子节点是否为空,都要w-- if(T->rchild) w--; } }