```c
1truct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2){
2 if (!list2){
3 return list1;
4 }
5
6 if (!list1){
7 return list2;
8 }
9
10 struct ListNode *temp;
11
12 if (list1->val <= list2->val){
13 temp = list1;
14 temp->next = mergeTwoLists(list1->next, list2);
15 }else{
16 temp = list2;
17 temp->next = mergeTwoLists(list2->next, list1);
18 }
19
20 return temp;
21}
22
```
この2行目から8行目までにif判断式は何を表しているんですか?なぜlist1,2を返しているんですか?返す意味はなんですか?
またどういう流れでコードが進んでいきますか?
※このコードは自分で書いたわけではありません。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
まずは2つの配列をマージして一本の配列にまとめるのを
学ぶのが良いと思う。
「マージのアルゴリズム」
https://programming-place.net/ppp/contents/algor …
これの「2ウェイマージ」をよく理解した上で
リンクトリスト版や再起版でどうなるか考えた方が良いと思う。
No.1
- 回答日時:
再帰だから2つの関連した意味が有って
①2つのソートされたリストをマージする際
片方のリストが空なら、ソートは不要なので空でない方のリストを返せば良い
ということ。両方とも空ならNULLを返すしかない。
②再帰でマージを進めてゆくと、マージすべき2本のソートされた
リストがだんだん短くなって行く。
やがて①の条件に達すると再帰が終了し、再帰を
遡って処理全体が終了する。
つまり①は再帰の終了条件になっている。
前にも少し書いたけど、再帰は美しくシンプルに書けるけど
プログラミングの初心者には難解。
またこのコードはスタックを食いまくるので簡単に
スタックオーバーフローで停止してしまい
実用性は無い。
学習にはもっと良いコードを見つけるべき。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# leetcode21 1 2022/04/21 11:53
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- PHP style.cssのjQuery条件付きcssが機能しない 4 2022/07/17 18:27
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
- MySQL うまくいきません教えてくださいお願いしますSQLです。クエリ構文です。 1 2023/07/07 12:39
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- PHP コメント機能に返信欄を矢印で追加したい 1 2022/05/09 21:17
- Excel(エクセル) マクロで列を加えたら上手くいかなくなりました。 2 2022/05/23 17:59
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- Visual Basic(VBA) [Excel VBA] このコードでは行の挿入や行の消去をすると13のエラーが出てしまう。 3 2022/12/09 00:29
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数のIP取得
-
Python - Excel で Webからデー...
-
Application.ScreenUpdating = ...
-
JSONで文字列が長い時
-
メモリをアドレスを直接指定し...
-
python3について。
-
16進の10進変換について
-
実行中の変数の中身をイミディ...
-
ACCESS テキストボックスを隙...
-
コンボボックスのtag情報の取得...
-
VBAでPDFのコピーとリネームを...
-
VB6で、長い時間かかる処理...
-
テーブル内でドロップダウンメ...
-
<SELECT>タグの折り返し
-
perlでcheckboxがうまく整理で...
-
構造体の各データの表示につい...
-
セレクトボックスのselected属...
-
MSXMLでの属性の存在確認法
-
selectタグ内の特定のoptionの...
-
途中まで出来ているのですが‥(D...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Python - Excel で Webからデー...
-
どちのほうがすきですか?
-
【python】辞書作成(ネスト)を...
-
C# GetFilesで複数のファイルの...
-
Scheme 中置式から後置式へ
-
Pythonでリストの要素の順番を...
-
C言語:単語カウント
-
STLのlistで重複するものだけを...
-
可変引数をconstで参照渡し
-
PerlでXMLを解析して出力する。
-
複数のIP取得
-
Ademの関係(Schemeについて教...
-
ギブアップ!!
-
リストの中のDataFrameに他のDa...
-
python3でのリスト作成について...
-
C言語:ファイル操作
-
プログラミングの問題について...
-
texで"図"または"Fig"を外したい
-
Application.ScreenUpdating = ...
-
JSONで文字列が長い時
おすすめ情報