解题代码
void Add(List L, ElementType K) {
List temp = (List)malloc(sizeof(struct Node));
temp->Data = K;
ElementType flag = 1;
if (!L->Next) {
L->Next = temp;
temp->Next = NULL;
}
else {
while (L->Next) {
if (K < L->Next->Data) {
flag = 0;
temp->Next = L->Next;
L->Next = temp;
break;
}
L = L->Next;
}
if (flag) {
L->Next = temp;
temp->Next = NULL;
}
}
}
List Merge(List L1, List L2) {
List temp1 = L1->Next;
ElementType K,flag=1;
while (temp1) {
if (flag) {
L1->Next = NULL;
flag = 0;
}
L1 = temp1;
temp1 = temp1->Next;
K = L1->Data;
free(L1);
Add(L2, K);
}
List L3 = (List)malloc(sizeof(struct Node));
L3->Next = L2->Next;
L2->Next = NULL;
return L3;
}
测试结果
问题整理
1.判断地址是否为空时,忘记加!
2.目前的状态,一个函数不要超过30行。