dポイントプレゼントキャンペーン実施中!

```c

struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2){
if (!list2)
{
return list1;
}
if (!list1)
{
return list2;
}

struct ListNode *sol;
if (list1->val <= list2->val)
{
sol = list1;
sol->next = mergeTwoLists(list1->next, list2);
}
else
{
sol = list2;
sol->next = mergeTwoLists(list2->next, list1);
}
return sol;
}

```

C言語の問題ですが、これは何をしているか1行ずつコメントをつけていただけませんか?

A 回答 (1件)

これはマージ


2本のソートされたリストを一本のソートされた
リストにするアルゴリズム。
こいつを再帰で書くのは悪手だし
超が付く有名アルゴリズムだから
教科書を読みましょう。

これを発展させて汎用のソ-トアルゴリズムにしたのが
マージソ―ト。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!