单链表的存储结构:
typedef struct LinkList{
int data;
LinkList * next;
}
分析:
要删除所有结点,怎么删除?
往往都要定义前后指针 pre ,p 毕竟一个指针不够用。
思路:
1.定义两个指针pre,p ,其中pre开始指向头结点 (pre = L).
2.通过while循环,首先释放头结点。然后两个指针,同步后移
3. 循环跳出后,pre指向最后一个节点,最后把该节点删除
C代码实现:
void DestrongList(LinkList * L){
LinkList * pre = L,* p;
p = pre->next;
while(p!=null){
free(pre);
pre = p;
p = p->next;
} //跳出后,pre指向最后一个节点,最后把该节点删除
free(pre);
}