题目详情
题目分析:
- 注意格式
#include <cstdio>
#include <malloc.h>
struct Node
{
int Data;
Node *Next;
};
Node *Read();
Node *Merge(Node *L1, Node *L2);
void Print(Node *L);
int main()
{
Node *L1, *L2, *L;
L1 = Read();
L2 = Read();
L = Merge(L1, L2);
Print(L);
return 0;
}
Node *Merge(Node *L1, Node *L2)
{
Node *L3 = (Node *)malloc(sizeof(struct Node));
L3->Next = NULL;
Node *pp = L3;
Node *p = L1->Next;
Node *q = L2->Next;
while (p != NULL && q != NULL)
{
if (p->Data < q->Data)
{
pp->Next = p;
p = p->Next;
pp = pp->Next;
}
else
{
pp->Next = q;
q = q->Next;
pp = pp->Next;
}
}
if (p != NULL)
pp->Next = p;
if (q != NULL)
pp->Next = q;
L1->Next = NULL;
L2->Next = NULL;
return L3;
}
Node *Read()
{
Node *L3 = (Node *)malloc(sizeof(struct Node));
L3->Next = NULL;
Node *pp = L3;
int num;
scanf("%d", &num);
while (num != -1)
{
Node *Ll2 = (Node *)malloc(sizeof(struct Node));
Ll2->Data = num;
pp->Next = Ll2;
pp = pp->Next;
scanf("%d", &num);
}
return L3;
}
void Print(Node *L)
{
Node *pp = L;
if (pp->Next == NULL)
{
printf("NULL");
return;
}
pp = pp->Next;
printf("%d", pp->Data);
pp = pp->Next;
while (pp != NULL)
{
printf(" %d", pp->Data);
pp = pp->Next;
}
}