鱼生富贵 2022-03-15 09:40 采纳率: 97.4%
浏览 36
已结题

建立、删除、释放链表,再输出,不知道问题出在哪



#include<stdio.h>
#include<stdlib.h>
typedef struct LinkList
{
    int num;
    struct LinkList* next;
}List;
int main()
{
    int n, k, i;
    scanf_s("%d", &n);
    List* head=NULL, * p1=NULL, * p2=NULL, * p=NULL;
    for (i = 0; i < n; i++)
    {
        p1 = new List;
        scanf_s("%d", &p1->num);
        if (head == NULL)
            head = p1;
        else
            p2->next = p1;
        p2 = p1;
    }
    p1->next = NULL;
    scanf_s("%d", &k);
    p1 = head; p2 = p1;
    while (p1)
    {
        if (p1->num == k)
        {
            if (p1 == head)
                head = p1->next;
            else if (p1->next == NULL)
                p2->next = NULL;
            else
            {
                p = p1;
                p2->next = p1->next;
                delete p;
            }
        }
        p2 = p1;
        p1 = p1->next;
    }
    p = head;
    while (p)
    {
        printf("%d ", p->num);
        p = p->next;
    }
    p1 = p2 = head;
    while (p1)
    {
        p2 = p1->next;
        delete p1;
    }
}

img


输入有问题,点回车不出结果是为什么

  • 写回答

3条回答 默认 最新

  • Dana_ranmo 2022-03-15 10:12
    关注

    暂时看来你最后删除链表有问题,line53-line57,只删了一个节点,delete p1之后p1就等于null了
    然后不知道链表需不需要头结点,有些可能需要一个head结点,head->next才开始存放数组的值

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月24日
  • 已采纳回答 3月16日
  • 创建了问题 3月15日

悬赏问题

  • ¥17 pro*C预编译“闪回查询”报错SCN不能识别
  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向