70,023
社区成员




struct node
{
int data;
struct node *next;
};
void Great_link(struct node *ha,struct node *hb)
{
struct node *p,*q, *s;
struct node *temp;
p = ha->next;
q = hb->next;
while(q)
{
if (p->data < q->data)
{
p = p->next;
continue;
}
//无论插入到哪里,不改变b那么就要新建结点
temp = (struct node *)malloc(sizeof(struct node));
temp->data = q->data;
//将temp插入到p之后
temp->next = p->next;
p->next = temp;
//如果p->data = q->data不做处理,如果p->data > q->data,把数据交换一下即可
if (p->data > q->data)
{
temp->data = p->data;
p->data = q->data;
}
p = temp;//p下移
if (q)
{
q = q->next;
}
else
break;//链表b处理完毕
if (p->next == NULL)
{
s = p;//为下一个while提供服务
}
}
while(q)//到a末尾,b未处理完毕
{
temp = (struct node *)malloc(sizeof(struct node));
temp->data = q->data;
temp->next = s->next;//实际上就是NULL
s->next = temp;
s = temp;
q = q->next;
}
}