投稿の 1 つで、 C で 2 つの並べ替えられたリストをマージするための答えとして、以下のコードを見ました。
#define SWAP_PTRS(a, b) do { void *t = (a); (a) = (b); (b) = t; } while (0)
Node* MergeLists(Node* list1, Node* list2)
{
Node *list = NULL, **pnext = &list;
if (list2 == NULL)
return list1;
while (list1 != NULL)
{
if (list1->data > list2->data)
SWAP_PTRS(list1, list2);
*pnext = list1;
pnext = &list1->next;
list1 = *pnext;
}
*pnext = list2;
return list;
}
誰かがこれを疑似コードテキストとして説明してもらえますか? 同じ回答でコメントできないため、新しい質問として投稿します。