單鏈表的銷毀:鏈表銷毀后不存在,不僅所有元素不復存在,頭結點和頭指針也不復存在。
算法思路:從頭指針開始,依次釋放所有節點。
定義一個備量指針,P,讓它所指向的
一個變量要想指向某一個空間,我們就把這個空間的地址賦給P,比如:想讓指針P指向變量a,
那么,就 P = &a;這樣就是把 變量a 的地址賦值給 指針p 了,而 p 就指向 變量a 的地址。
如上圖,想讓指針p指向頭結點,也就是 指針L 所指向的結點,直接 p=L;就完事兒。
接下來,讓 指針L 指向下一個結點的地址(L = L->next;),
然后再釋放 指針P 所指向的結點:delete p;或者 free(p);
如果這里用 delete p;那么前面開辟節點時,就用 new ;
如果這里用 free(p);那么前面開辟空間時,就用 malloc 方法;
再接下來就和上邊操作一樣,重復。這個循環的 結束條件:L==NULL,循環條件:L!=NULL
// 銷毀單鏈表 L Status DestroyList_L(LinkList &L){ Lnode *p; //用於指向要銷毀的結點 while(L){ //循環條件,L 非空 p = L;//將 頭指針L 指向的地址賦值給 指針P,使 指針P 指向頭結點 L = L->next;//讓 頭指針L 指向下一個結點 delete p; //釋放 指針P 指向的結點 } return OK; //循環結束,返回OK }