題目描述:
兩個循環單連結清單,連結清單頭指針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;
}