题目描述
知L1、L2分别为两循环单链表的头结点指针,m,n分别为L1、L2表中数据结点个数。要求设计一算法,用最快速度将两表合并成一个带头结点的循环单链表。
输入
m=5
3 6 1 3 5
n=4
7 10 8 4
输出
3 6 1 3 5 7 10 8 4
样例输入
m=7
3 5 1 3 4 6 0
n=5
5 4 8 9 5
样例输出
3 5 1 3 4 6 0 5 4 8 9 5
分析:
本题是简单的链表应用。在此题,也不一定要把他们弄成循环链表。
不过我在做链表题的时候,不知是太久没做,还是什么,完全生疏了许多。 我一开始在创建链表的时候,竟然无法处理那个小的细节。导致花费时间之多,令我绝望。同时也告诉我,要不断努力,不断复习。
#include"stdio.h"
#include"string.h"
typedef struct a{
int node;
struct a *next;
}*LinkList,Node;
/*这里十分聪明,LinkLIst是*的所以*L 是一个二级指针。可以直接带回头结点。*/
void CerateListTail(LinkList *L,int n)//创建一个带有头结点的链表
{
LinkList p,r;
int i;
*L=(LinkList)malloc(sizeof(Node));
r=*L;
for(i=0;i<n;i++)
{
p=(Lin