1
/ \
2 3
/ \ / \
4 5 6 7
对于给定的二叉树,我们需要创建一个矩阵 a[7][7] 满足像 a[2][1]=1 这样的祖先属性,因为 1 是 2 ....
我通过使用额外的空间来解决它一个数组......我想出的解决方案是
int a[n][n]={0};
void updatematrix(int a[][n],struct node *root,int temp[],int index){
if(root == NULL)
return ;
int i;
for(i=0;i< index;i++)
a[root->data][temp[i]]=1;
temp[index]=root->data;
updatematrix(a,root->left,temp,index+1);
updatematrix(a,root->right,temp,index+1);
}
我的解决方案有什么错误吗?我们可以就地这样做吗???(我的意思是不使用临时数组)