合并两个有序链表经典面试题-创新互联

一、问题:合并两个有序单链表,合并后的单链表依然有序。

专注于为中小企业提供成都网站建设、成都网站设计服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业海淀免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千多家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

二、分析:

1.有如下两个有序链表str1和str2

合并两个有序链表  经典面试题

2.合并后的新链表的头结点定义为newpHead,采用摘结点法:

合并两个有序链表  经典面试题

合并两个有序链表  经典面试题

三、代码实现(c语言)

sListNode* MergeList(sListNode* FirpHead, sListNode* SecpHead)
{
 if(FirpHead == NULL)
 {
  return SecpHead;
 }
 if(SecpHead == NULL)
 {
  return FirpHead;
 }
 sListNode* newpHead = NULL;
 sListNode* firCur = FirpHead, *secCur = SecpHead;
 sListNode* tail = NULL;
 if(firCur->data < secCur->data)
 {
  newpHead = firCur;
  firCur = firCur->next;
 }
 else
 {
  newpHead = secCur;
  secCur = secCur->next;
 }
 tail = newpHead;
 while(firCur != NULL && secCur != NULL)
 {
  if(firCur->data < secCur->data)
  {
   tail->next = firCur;
   firCur = firCur->next;
  }
  else
  {
   tail->next = secCur;
   secCur = secCur->next;
  }
  tail = tail->next;
 }
 if(firCur == NULL)
 {
  tail->next = secCur;
 }
 if(secCur == NULL)
 {
  tail->next = firCur;
 }
 return newpHead;

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。


标题名称:合并两个有序链表经典面试题-创新互联
文章出自:http://ybzwz.com/article/dgogdg.html