无表头单链表的总结----从链表中删除某一个年纪的的节点

Posted 新爱代

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无表头单链表的总结----从链表中删除某一个年纪的的节点相关的知识,希望对你有一定的参考价值。

 1 #include "head.h"
 2 struct Student *del_same_age(struct Student*head, int age)
 3 {
 4     struct Student *p, *pt; int find = 0;
 5     p = pt = head;
 6     while (p != NULL)//当循环到最后一个节点时
 7     {
 8 
 9         if (p->stu_age == age)//如果相等
10         {
11             find++; //说明找到了
12             if (p == head)//如果找到是头结点
13             {
14                 head = p->next;
15                 p = p->next;//循环节点后移
16                 pt = p;
17             }
18             else//如果不是头结点
19             {
20                 pt->next = p->next;
21                 p = p->next;
22             }
23         }
24         else//如果没有找到
25         {
26             pt = p;
27             p = p->next;//循环节点后移
28         }
29     }
30     if (!find)//如果循环下来没有找到节点
31         printf("not found %d", age);
32     return head;
33 }

 

以上是关于无表头单链表的总结----从链表中删除某一个年纪的的节点的主要内容,如果未能解决你的问题,请参考以下文章

单链表LRU

无表头单链表的总结----输出链表

无表头单链表的总结----动态建立链表

无表头单链表的总结----两个链表合并

无表头单链表的总结----增加节点(原链表为有序的链表)

无表头单链表的总结----如何将已经初始化的结构体数组加入链表关系