题目
答案
#include<iostream>
using namespace std;
int a[1001];
int main()
{
int n;
cin>>n;
int i,j;
for(i=1;i<=n;i++)
cin>>a[i];
cin>>i>>j;
if(a[i]==0) printf("ERROR: T[%d] is NULL",i);
else if(a[j]==0) printf("ERROR: T[%d] is NULL",j);
else
{
while(i!=j)
{
if(i>j) i/=2;
else j/=2;
}
cout<<i<<" "<<a[i];
}
}
注意
掌握二叉树下标的排列规律,即子节点下标除以2等于父节点下标(下标从1开始)