在学校平台上有道题
题目描述
输入一个正整数序列,遇负数时停止,建立一个线性链表存储读入的数据,然后从键盘读入一数据x,在该链表中删除比x大的数据后输出。
输入
单组测试数据
第一行输入很多个整数,最后一个是负数,其他都是正数
第二行输入一个整数x
输出
按照输入的顺序,输出删除后链表的值
样例输入 Copy
1 2 3 4 5 -1
3
样例输出 Copy
1 2 3
#include<stdio.h>
#include<stdlib.h>
typedef struct line
{
int num;
struct line *next;
}Line;
void inside(Line*head,int num)//尾插
{
Line*news=(Line*)malloc(sizeof(Line));
news->num=num;
news->next=NULL;
Line*q;
q=head;
while(q->next!=NULL)
{
q=q->next;
}
q->next=news;
}
int main(void)
{
Line*head=(Line*)malloc(sizeof(Line));
head->next=NULL;
Line*p;
p=head;
int i,x;
scanf("%d",&i);
while(i>=0)
{
inside(head,i);
scanf("%d",&i);
}
scanf("%d",&x);
for(;p!=NULL;p=p->next)
{
if((p->num)<=x)
{
printf("%d ",p->num);
}
}
printf("\n");
return 0;
}
这是我的做法本机运行没问题,但是交上去就是时间超限,是什么问题