分析:容易看岔题目,题目要求删除的空位由最后一元素填补,
由函数返回被删除元素的值有两种表示方式:
①用return返回该元素值;
②用“&”改变函数参数值【如下代码所示】
分析:将元素逆置for循环条件有两种表达方式:
①for(i=0;i<L.length/2;i++)交换L.data[i]与L.data[L.length-i-1];
②for(i=0,j=L.length-1;i!=j;i++,j--) 交换L.data[i]与L.data[j]
分析:删除相同元素X的两种解法:【辅助变量k】
①k记录不等于X的元素个数【即需要保存的元素个数】:
if(L.data[i]!=X) { L.data[k]=L.data[i];k++; }
②k记录等于X的元素个数【即需要删除的元素个数】:
if(L.data[i]==X) k++;else L.data[i-k]=L.data[i];
分析:
删除链表中的结点时注意释放该结点空间【free(p);】
递归的核心:①递归的边界条件【也就是递归的结束条件】
②递归调用【主要找规律,先确定单次循环】
分析:
“逆向”可以联想 ——栈,递归