📄 c09_13.c
字号:
/*删除结点*/
struct Data *EraseNode(struct Data *head, int n)
{
struct Data *p1; /* 指向要删除的结点 */
struct Data *p2; /* 指向p1的前一个结点 */
if (head == NULL) /* 空表 */
{
printf("\n 链表是空表!!\n");
return (head);
}
p1 = head;
while((n != p1->num)&&(p1->next!=NULL)) /* 查找要删除的结点 */
{
p2 = p1;
p1 = p1->next;
}
if (n == p1->num) /* 找到了 */
{
if (p1 == head) /* 要删除的是头结点 */
head = p1->next;
else
p2->next = p1->next;
free(p1); /* 释放被删除结点所占的内存空间 */
printf("已删除: %d\n", n);
}
else /* 未找到要删除的结点 */
printf("%链表中未找到要删除结点。\n");
return head; /* 返回新的表头 */
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -