关于单链表归并和删除的问题(C语言)

来源:百度知道 编辑:UC知道 时间:2024/05/24 03:22:32
这个是原代码,显示有问题,不能显示而且有溢出现象,同时还不能实现归并
原代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct Node{
int data;
struct Node *next;
}Lnode,*LinkList;

LinkList CreatLinlList()
{
LinkList L;
Lnode *s,*r;
int x;
int len;
L=r=NULL;
printf("input length:");
scanf("%d",&len);
scanf("%d",&x);
while(len-- != 1)
{
s=(Lnode *)malloc (sizeof (Lnode));
s->data = x;
if(L==NULL)
L=s;
else
r->next=s;
r=s;
scanf("%d",&x);
}
if(r!=NULL)
r->next=NULL;
return L;
}
void deleteLinkList( LinkList L)
{
Lnode *p,*q,*r;/*p头指针 q指针 r尾指针*/
p=L->next;/*p指向第一个结点*/
if(p==NULL)
return;
while(p->next)
{
q=p;
while(q->next)
if (q->next->data==p->data)

收藏一下,今天已经帮你改了一半了,不过时间关系,没有改完.
明天改完给你帖上来
//先给你帖create吧,你的create是不正确的,给你改过如下:
LinkList CreatLinlList()
{
LinkList L;
Lnode *s,*r;
int len;
int i=1;
L=r=NULL;
r=s=(Lnode *)malloc (sizeof (Lnode));
printf("input length:");
scanf("%d",&len);
while(len-- > 0)
{
printf("input %d data=",i);
scanf("%d",&s->data);
if(L==NULL)
L=s;
else
r->next=s;
r=s;
i++;
s=(Lnode *)malloc (sizeof (Lnode));
}
r->next=NULL;
return L;
}