您的位置:首页 > 编程语言 > C语言/C++

【C语言】两个有序单链表的合并

2015-11-26 19:55 411 查看


Node *MergeList(PLinkList p1,PLinkList p2)
{
PLinkList newhead = NULL;   //新链表的头结点
PLinkList   end = newhead ;    //新链表的当前结点
if(!p1 )
{
return p2 ;
}
if(!p2 )
{
return p1 ;
}
if(p1 ->data<p2->data)
{
newhead= p1;
p1=p1 ->next;
}
else
{
newhead= p1;
p1=p1 ->next;
}
end=newhead;
while(p1 &&p2)
{
if(p1 ->data>p2->data)
{
end->next= p2;
end= p2;
p2=p2 ->next;
}
else
{
end->next= p1;
end= p1;
p1=p1 ->next;
}
}
if(!p1 )
{
end->next= p2;
}
if(!p2 )
{
end->next= p1;
}
return newhead;
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: