Conversation
|
|
||
| ### メモ | ||
|
|
||
| - `ListNode* prev = &dummy` によって `prev` に加えられた変更が `dummy` にも加えられ続ける(アドレス参照)? |
There was a problem hiding this comment.
アドレス参照という言葉は C++ にはないと思います。
prev には dummy へのポインターが格納されます。 prev が dummy の実体 (インスタンス) を指し示している状態です。この状態で prev が指し示しているものを変更すると、 prev が指し示している dummy の実体が変更される、という状況です。
There was a problem hiding this comment.
ありがとうございます。言葉の意味をよく分からずに書いていました。
2段落目の説明を読んでより理解が深まりました。
| while (runner != nullptr && runner->next != nullptr){ | ||
| if (runner->val == runner->next->val) { | ||
| // flag | ||
| int val_dup = runner->val; |
There was a problem hiding this comment.
以下のコメントをご参照ください。
hemispherium/LeetCode_Arai60#10 (comment)
duplicated_val はいかがでしょうか? val はすでに変数名で使用されているため、使っても良いと思います。
There was a problem hiding this comment.
ありがとうございます。コメントとスタイルガイドを確認しました。
step3.cpp で使用している val_duplicate のようなものを使っていこうと思います。
|
|
||
| ## 勉強 | ||
|
|
||
| - [他の人のコード](https://github.com/hemispherium/LeetCode_Arai60/pull/5/commits/a1e0bb0ed12ad3b03421cb10309fa8a8246d5e99)で `dummy(-1000)`を使っているのを見かけた。`-100 <= Node.val <= 100` という制約から外れるようにしているのだと理解した (参照:[このコメント](https://github.com/5103246/LeetCode_Arai60/pull/4/commits/a5301e9db863d53d1d6c4e9925cff2917555e970#r2287948164))。 |
There was a problem hiding this comment.
(リンク先にもコメントしましたが、)私は、個人的には意味のありそうな -1000 はあまり好まないですね。読んだ人は-1000というのはどういう事情で決まったのだろうかと思うはずです。
デバッグでは 0xDEADBEEF などで埋めるという慣習もあります。
https://ja.wikipedia.org/wiki/Hexspeak
| int val_duplicate = runner->val; | ||
|
|
||
| // ensures runner is past the duplicated block | ||
| while (runner->val == val_duplicate) { |
There was a problem hiding this comment.
runner = runner->next を繰り返して、runner == nullptr になった場合、ヌルポインタ参照になるので
runner != nullptr が必要ですね。
問題
https://leetcode.com/problems/remove-duplicates-from-sorted-list-ii/
次に解く問題
2. Add two numbers