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

  

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

<强>二,分析:

<强> 1。有如下两个有序链表str1和str2

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

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

,

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

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

<强>三、代码实现(c语言)

sListNode *, MergeList (sListNode *, FirpHead,, sListNode *, SecpHead)   {   ,如果(FirpHead ==, NULL)   ,{   return 才能;SecpHead;   ,}   ,如果(SecpHead ==, NULL)   ,{   return 才能;FirpHead;   ,}   ,sListNode * newpHead =,空;   ,sListNode * firCur =, FirpHead,, * secCur =, SecpHead;   ,sListNode * tail =,空;   ,如果(firCur→data  & lt;, secCur→数据)   ,{   时间=newpHead 才能;firCur;   时间=firCur 才能;firCur→下;   ,}   其他的,   ,{   时间=newpHead 才能;secCur;   时间=secCur 才能;secCur→下;   ,}=,,tail  newpHead;   ,而(firCur  !=, NULL ,,, secCur  !=, NULL)   ,{   如果才能(firCur→data  & lt;, secCur→数据)   {才能   ,,尾巴→next =, firCur;   ,,firCur =, firCur→下;   ,,}   其他的才能   {才能   ,,尾巴→next =, secCur;   ,,secCur =, secCur→下;   ,,}   tail 才能=,尾巴→下;   ,}   ,如果(firCur ==, NULL)   ,{   尾才能→next =, secCur;   ,}   ,如果(secCur ==, NULL)   ,{   尾才能→next =, firCur;   ,}   ,return  newpHead;

,

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