#2
九转星河2017-11-21 20:41
回复 楼主 attitude123
|
程序代码:
ist *merger(list *p1, list *p2)
{
list *head, *p;
while (p1 != NULL || p2 != NULL)
{
int i{ 1 };
if (p1->num > p2->num)
{
if (i == 1)
{
p = head = p2; p2 = p2->next;
}
else
{
p->next = p2; p = p2; p2 = p2->next;
}
}
else
{
if (i == 1)
{
p = head = p1; p1 = p1->next;
}
else
{
p->next = p1; p = p1; p1 = p1->next;
}
}
if (p1 = NULL)
{
p->next= p2;
}
if (p2 = NULL)
{
p->next= p1;
}
i++;
}
return head;
}
建立了两个链表,让merger函数把传进来的两个链表按从小到大的顺序归并以个链表。为什么没有实现预期效果,求大神指导 {
list *head, *p;
while (p1 != NULL || p2 != NULL)
{
int i{ 1 };
if (p1->num > p2->num)
{
if (i == 1)
{
p = head = p2; p2 = p2->next;
}
else
{
p->next = p2; p = p2; p2 = p2->next;
}
}
else
{
if (i == 1)
{
p = head = p1; p1 = p1->next;
}
else
{
p->next = p1; p = p1; p1 = p1->next;
}
}
if (p1 = NULL)
{
p->next= p2;
}
if (p2 = NULL)
{
p->next= p1;
}
i++;
}
return head;
}