接上篇:https://blog.csdn.net/m0_37957160/article/details/108685364
例子:写一函数以删除动态链表中指定的结点。
解题思路:
1、从p指向的第一个结点开始,检查该结点中的num值是否等于输入的要求删除的那个学号。
2、如果相等就将该结点删除,如不相等,就将p后移一个结点(继续寻找 ),再如此下去,直到遇到表尾为止。
3、可以设两个指针变量p1和p2,先使p1指向第一个结点。
4、如果要删除的不是第一个结点,则使p1后移指向下一个结点(将p1->next赋给p1),在此之前将p1的值赋给p2,使p2指向刚才检查过的那个结点(为什么要这样呢?因为刚才的那个图我们知道我们要实现删除操作C,必须这个结点B的next指向后一个结点D的地址,所以这个p2还是必须要先指向B保留一下,之后p2的next才能指向p1)。
算法流程图: