マージI持っ2つの片方向リンクリストのヘッドノード無し:(ヘッドノードなし)2つの片方向リンクリスト
LIST 1:[X1-> X2 - > .....-> XN]
LIST 2:[Y1-> Y2 - > ......-> YM]
マージ後:
IF(N <メートル)
LIST 1:[X1-> y1-> x2-> y2-> .....-> xn-> yn-> Y(N + 1) - > ....-> YM]他
LIST 1:[X1-> Y1-> x2-> Y2 - > .....- > XM-> YM-> X(M + 1) - > ....-> XN]
ここに私のマージ機能です:
void merge(NODE *list1, NODE *list2)
{
NODE *ptr1 = list1;
NODE *ptr2 = list2;
while(1)
{
if(ptr2 == NULL)
break;
if(ptr1->next == NULL)
{
ptr1->next = ptr2;
display(list1);
while(list2 != NULL)
list2 = list2->next;
break;
}
list2 = list2->next;
ptr2->next = ptr1->next;
ptr1->next = ptr2;
ptr2 = list2;
ptr1 = (ptr1->next)->next;
display(list1);
}
}
しかし、主な機能でそれを実行した後、LIST 2は、空であったはずですが、そうではありません。
LIST 1:[1-> 2-> 3]
LIST 2:たとえば
[5-> 6> 7]
マージ後:
リスト1:[1-> 5-> 2-> 6-> 3-> 7]
リスト2:[5-> 2-> 6-> 3-> 7]空)
説明してください!
編集:
サンプル出力:
---------- [リスト1] ----------
入力してください要素(-123が終了する):1
[一覧:1]
入力要素(-123は終了する):2
[LIST:1 2]
要素(終了し-123)を入力:-123
---------- [リスト2] ------ ----
要素を入力し(-123が終了する):5
[一覧:5]
要素を入力し(-123は終了する):6
[LIST:5,6]
要素(終了し-123)を入力:7
[LIST:5 6 7]:8
要素(終了する-123)を入力し
[LIST:5 6 7 8]
要素(終了する-123)を入力:-123
[LIST:1 5 2]
[LIST:1 5 2 6 7 8]
---------- [MFCリスト] ----------
[LIST:1 5 2 6 7 8]
[LIST:5 2 6 7 8]
してください[編集]あなたの質問と[MCVE]を提供する –
あなたは "リスト2"が空でなければならないと思いますか? – UnholySheep