#include<stdio.h>
#include<stdlib.h>
typedef int ElementType;
typedef struct Node PtrToNode;
struct Node {
ElementType Data; / 存储结点数据 /
PtrToNode Next; / 指向下一个结点的指针 /
};
typedef PtrToNode List; / 定义单链表类型 /
List Read(); / 细节在此不表 /
void Print( List L ); / 细节在此不表;空链表将输出NULL */
List Merge( List L1, List L2 );
int main()
{
List L1, L2, L;
L1 = Read();
L2 = Read();
L = Merge(L1, L2);
Print(L);
Print(L1);
Print(L2);
return 0;
}
List Read(){
List head,rear,temp;
rear=(List)malloc(sizeof(struct Node));
rear->Next=NULL;
head=rear;
int N;
scanf("%d",&N);
while(N){
List p;
p=(List)malloc(sizeof(struct Node));
scanf("%d",&p->Data);
p->Next=NULL;
rear->Next=p;
rear=p;
N--;
}
temp=head;
head=head->Next;
free(temp);
return head;
}
void Print(List L){
for(;L;L=L->Next)
printf("%d ",L->Data);
printf("\n");
}
List Merge(List L1,List L2){
List La,Lb,Lc,p;
p=(List)malloc(sizeof(struct Node));
p->Next=NULL;
La=L1->Next;Lb=L2->Next;Lc=p;
while(La&&Lb){
if(La->Data<=Lb->Data){
Lc->Next=La;
Lc=Lc->Next;
La=La->Next;
}
else{
Lc->Next=Lb;
Lc=Lc->Next;
Lb=Lb->Next;
}
}
if(La)Lc->Next=La;
elseLc->Next=Lb;
L1->Next=NULL;
L2->Next=NULL;
return p;
}
链表合并为什么错误呢
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 技术专家团-小桥流水 2021-11-04 09:26关注
问题在于,你在Read函数中,把第一个空节点给删掉了,Print的时候也是从第一个节点开始显示的,但是在Merge函数中,反而从第二个节点开始显示的。第一个节点你直接忽略了。不该merge函数的话,就把read和print函数改了,修改如下:
List Read(){ List head,rear,temp; rear=(List)malloc(sizeof(struct Node)); rear->Next=NULL; head=rear; int N; scanf("%d",&N); while(N){ List p; p=(List)malloc(sizeof(struct Node)); scanf("%d",&p->Data); p->Next=NULL; rear->Next=p; rear=p; N--; } //删掉这3句 //temp=head; //head=head->Next; //free(temp); return head; } void Print(List L){ L=L->Next; //添加这一句 for(;L;L=L->Next) printf("%d ",L->Data); printf("\n"); }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 基于卷积神经网络的声纹识别
- ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
- ¥100 为什么这个恒流源电路不能恒流?
- ¥15 有偿求跨组件数据流路径图
- ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
- ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
- ¥15 CSAPPattacklab
- ¥15 一直显示正在等待HID—ISP
- ¥15 Python turtle 画图
- ¥15 stm32开发clion时遇到的编译问题