7-1 顺序存储的二叉树的最近的公共祖先问题

35 阅读1分钟

第一次使用递归函数解决简单二叉树问题//c #include <stdio.h> int find(int n,int m){ int max,min; if(n==m){ return n; } else{ if(n>m){ max=n; min=m; } else{ max=m; min=n; } find(max/2,min); } } int main(){ int i,j,k=0; int n,m; scanf("%d",&k); int a[k]; for(i=1;i<=k;i++){ scanf("%d",&a[i]); } scanf("%d %d",&n,&m); if(a[n]==0){ printf("ERROR: T[%d] is NULL\n",n); return 0; } if(a[m]==0){ printf("ERROR: T[%d] is NULL\n",m); return 0; } j=find(n,m); printf("%d %d",j,a[j]); return 0; }