单链表的销毁:链表销毁后不存在,不仅所有元素不复存在,头结点和头指针也不复存在。
算法思路:从头指针开始,依次释放所有节点。
定义一个备量指针,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 }