天天看點

王道課後習題2.3.18:循環單連結清單合并

題目描述:

兩個循環單連結清單,連結清單頭指針h1和h2,将連結清單h2連結到連結清單h1之後,要求連結後的連結清單仍保持循環連結清單形式。

算法思想:

<-	<-	<—r1|
h1->1->2->3-|

<-	<-	<—r2|
h2->4->5->6|

找到r1,r2後
r1->next=h2->next;
r2->next=h1;

           

核心代碼:

void merge_h1_h2(LNode* &h1,LNode* &h2)
{
    LNode *r1,*r2;
    LNode *p1,*p2;
    p1=h1->next;
    p2=h2->next;
    while(p1->next!=h1)
    {
        p1=p1->next;
    }
    r1=p1;
    while(p2->next!=h2)
    {
        p2=p2->next;
    }
    r2=p2;

    r1->next=h2->next;;//如果像答案說的隻是把h2連結到h1後就是r1->next=h2
    //但是這裡我連結到了第一個資料結點,不然輸出資料的時候會出問題
    r2->next=h1;

}
           

繼續閱讀