我在之前一篇博客《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; } }