我在之前一篇博客《C語言實現單鏈表的基本操作》實現了如何清空一個單鏈表,現在換成了雙向的非循環鏈表,整體思路是一樣的。代碼上傳至:https://github.com/chenyufeng1991/ClearDoubleLinkedList 。
核心代碼如下:
Node *ClearDoubleLinkedList(Node *pNode){
if (pNode == NULL) {
printf("%s函數執行,原鏈表就是空鏈表,無須執行該方法\n",__FUNCTION__);
return NULL;
}else{
while (pNode->next != NULL) {
//一次刪除每一個節點
pNode = pNode->next;
free(pNode->prior);
pNode->prior = NULL;
}
//清除最後一個節點
free(pNode);
pNode = NULL;
printf("%s函數執行,雙向非循環鏈表清空成功\n",__FUNCTION__);
return pNode;
}
}