链表清空及销毁的简单实现
struct LinkNode
{
int data;
struct LinkNode *next;
};
- 清空链表的函数实现
创建两个辅助节点指针:当前节点指针pCurrentNode
、后继节点指针pNextNode
void clearLinkList(struct LinkNode *pHeader)
{
if(pHeader == NULL)
return;
pCurrentNode = pHeader->next;
struct LinkNode *pNextNode;
while(pCurrentNode != NULL)
{
pNextNode = pCurrent->next;
free(pCurrentNode);
pCurrent = pNextNode;
}
pHeader->next = NULL;
}
- 销毁链表的函数实现
销毁链表其实就是在清空链表的基础上,将头节点释放掉
void destoryLinkList(struct LinkNode *pHeader)
{
if(pHeader == NULL)
return;
clearLinkList(pHeader);
free(pHeader);
pHeader = NULL;
}