刪除p指向的結點:
思路:
把p的下個結點內容拷貝到p,然後刪除p的下個結點;
/*
考慮的情況:
1. p是空
2.p 指向單鏈表最後一個結點;
3.p 指向單鏈表的頭結點
*/
/*
input :
P,將要刪除結點的指針
output :
1(成功),0(失敗),-1(失敗,但是把結點刪除了)
功能:
刪除鏈表中的結點
*/
int deleteTheNodeInList(LinkNode *p)
{
int returnState=1;
LinkNode *delNodeP;//指向實際刪除結點的指針
if(NULL==p)
return 0;
else if(NULL==p->next)
{
delNodeP=p;
returnState=-1;//當是尾結點時候直接刪除,但是返回狀態-1;當然也可不刪除,把他內容全部清0
}
else
{
delNodeP=p->next;
returnState=2;
memcpy(p,delNodeP,sizeof(*p));
}
delete delNodeP;
return returnState;
}