删除单链表结点,在删除头结点时容易出错。
代码如下:
显然在删除头结点上有2种方案:
1:pstHead = pstHead->pNext;
2:pstData = pstData->pNext;
memcpy(pstHead, pstData, sizeof(ST_STU));
方案1:只是修正了头结点所在的内存单元地址,原来的链表结构仍然有效,头结点仍然指向Next结点。
方案2:修正了头结点的内容,修正成Next结点的内容,这样头结点就成为Next结点了。
结论:方案2OK。