删除指定学生链表中学生年龄为n的学生
#include <iostream> using namespace std; typedef struct Student { int id; int age; Student *next; }Student; Student* createList(int num) { Student * head = (Student *)malloc(sizeof(Student)); Student *p; p = head; int count = 0; while (num > 0) { Student *node = (Student *)malloc(sizeof(Student)); node->id = ++count; node->age = count; p->next = node; p = node; num--; } p->next = NULL; return head; } void deleteList(Student *&list,int age) { Student *pre = list; Student *current = list->next; while (current != NULL) { if (current->age == age) { Student *tmp = current; pre->next = current->next; free(tmp); tmp = NULL; break; } pre = pre->next; current = current->next; } } void printList(Student *list) { Student *node = list->next; while(node != NULL) { cout << node->id << " "; node = node->next; } cout << endl; } int main(int argc, char const *argv[]) { Student * list = createList(5);
printList(list); deleteList(list, 1); printList(list); return 0; }