头插法:
void Create_Head(LinkList& L) {
type data;
cout << "请输入链表元素:\n";
cin >> data;
LinkList p = L;
while (data != 999) {
LinkList s = new Node;
s->data = data;
s->next = p->next;
p->next = s;
cin >> data;
}
}
销毁链表:
void DestroyList(LinkList& L) {
while (L) {
LinkList p = L->next;
delete(L);
L = p;
}
}
清空链表:
void ClearList(LinkList& L) {
LinkList q = L->next;
while (q) {
LinkList p = q->next;
delete(q);
q = p;
}
L->next = NULL;
}
二者原理相似 均是遍历链表 挨个删除 需要注意的是
在删除前我们需要两个指针 一个指向删除结点 另一个指向被删除结点的next
先删除结点 再让原来的指针指向next 实现指针整体后移的操作