1,递归求二叉树宽度,
int Height(BiTree T) { if(T==NULL) return 0; else if(T->left==NULL && T->right==NULL) return 1; else { int left,right; left=Height(T->left); right=Height(T->right); if(left>right) return left+1; else return right+1; } }
二叉树宽度
int MaxWidth(BiTree T ) { if(T==NULL) return 0; else { int W[MaxSize]=0; int MaxW=0; Width(T,W,0); for(int i=0;W[i]!=0;i++) if(W[i]>MaxW) MaxW=W[i]; return MaxW; } } void Width(BiTree T,int W[],int level) { if(T) { W[level]++; Width(T->left,W,level+1); Width(T->right,W,level+1); } } int count[100]; int MAX=-1; void FindWidth(BitNode T,int k) { if(T==NULL) return; count[k]++; if(MAX<count[k]) MAX=count[k]; FindWidth(T->lchild,k+1); FindWidth(T->rchild,k+1); }
求二叉树任意两个结点的最近公共祖先
原文:https://www.cnblogs.com/ls-pankong/p/11827562.html