链表基本操作---指定结点删除

2020年1月17日 1487点热度 0人点赞 0条评论

链表基本操作---指定结点删除

时间: 1ms        内存:128M

描述:

根据具有10个元素的整型数组构建链表,删除其中的指定结点3和6,并输出链表中所有元素的值。请完善如下程序:只需提交需要填写部分的代码。
#include <stdio.h>
#include <stdlib.h>
typedef struct NODE
{
    int data;           //数据域
    struct NODE *next;  //指针域,指向下一个结点
} Node;
int main()
{
    Node *head, *p1, *p2;     //head头指针,p一般结点指针
    int a[] = {1,2,3,4,5,6,7,8,9,10};
    int i;
    head = (Node *)malloc(sizeof(Node)); //开辟头结点
    p1 = (Node *)malloc(sizeof(Node));
    p1->data = a[0];
    head->next = p1;
    for( i = 1 ; i < 10 ; i++)  //对链表进行赋值,创建包含1-10的链表
    {
        p2 = (Node *)malloc(sizeof(Node));
        p1->next = p2;
        p2->data = a[i];
        p2->next = NULL;
        p1 = p2;
    }
    p1 = head->next;
    p2 = p1->next;
    printf("%d",p1->data);
    while( p2 != NULL )
    {
        if( p2->data == 3 || p2->data == 6)     //对于数据域是3或者是6的结点进行删除
        {
            p1->next = p2->next;
            free(p2);
            /*******在下面填写代码***********/

            /*******在上面填写代码***********/
        }
        printf(" %d",p2->data);
        p1 = p2;
        p2 = p2->next;
    }
    return 0;
}

输入:


输出:

不存在3和6的链表序列

示例输入:

示例输出:

1 2 4 5 7 8 9 10

提示:

参考答案:

解锁文章

没有看到答案?微信扫描二维码可免费解锁文章

微信扫描二维码解锁

使用微信扫描二维码打开广告页面后可以立即关闭,再刷新此页面即可正常浏览此文章

所跳转广告均由第三方提供,并不代表本站观点!

已经扫描此二维码?点此立即跳转

code

这个人很懒,什么都没留下

文章评论