条件:当输入0停止继续建立链表
#include<stdio.h>
#include<stdlib.h>
typedef struct node {
int data; //链表数据域
struct node *next; //链表指针域
}Node;
void DeletNode(Node *pHead, int data); //删除节点
void InsertListByHead(Node *pHead); //头插法
void DestroyList(Node **pHead); //销毁链表
Node * CreateList(); //创建空链表
void InsertListByTail(Node *pHead); //尾插法
void travelList(Node *pHead); //遍历链表
int main() {
Node *pHead;
int data;
pHead = CreateList();
// InsertListByTail(pHead);
InsertListByHead(pHead);
travelList(pHead);
printf("Please input the num you want to delete:");
scanf("%d", &data);
DeletNode(pHead, data);
travelList(pHead);
DestroyList(&pHead);
travelList(pHead); //验证链表是否销毁
return 0;
}
void DeletNode(Node *pHead, int data) {
Node *p ;
while (pHead && pHead ->data != data) { //用头指针遍历
p = pHead; //用p来保存要删除数据的前域
pHead = pHead->next;