代码段1
功能:合并两个有序的单链表。
1.1代码
Node Merge_list(List La,List Lb)
{
Node Lc;
InitList(&Lc);
List p1 = La->next;
List p2 = Lb->next;
List p3 = &Lc;
while (p1 != NULL && p2 != NULL)
{
if (p1->data <= p2->data)
{
p3->next = p1;
p3 = p1;
p1 = p1->next;
}
else
{
p3->next = p2;
p3 = p2;
p2 = p2->next;
}
}
if (p1 != NULL)
{
p3->next = p1;
}
if (p2 != NULL)
{
p3->next = p2;
}
return Lc;
}
1.2不懂的地方
排序的地方看不懂。
代码段2
功能:反转单链表。
2.1代码
Node *Reverse_1(List plist)
{
Node *ReverseHead = NULL;
Node *prev = NULL;
Node *cur = plist;
while (cur != NULL)
{
Node *curNext =cur->next;
if (curNext == NULL)
{
ReverseHead = cur;
}
cur->next = prev;
prev = cur;
cur = curNext;
}
return ReverseHead;
}
void Show_1(List plist)
{
Node *p = plist;
while (p->next != NULL)
{
printf("%d ",p->data);
p = p->next;
}
printf("
");
}
2.2不懂的地方
思路不太清楚。