头插法:
- 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 实现指针整体后移的操作