Conversation
|
|
||
| ## STEP1 | ||
| 配列を別に作って、それを操作して重複が消えたものを改めてListNodeとして返却する方法を考えましたが、 | ||
| まとまりがつかず5分が立ちましたので、新井氏の解説動画を見ました。 |
There was a problem hiding this comment.
手が止まってしまった過程も含めて書いていただいて大丈夫です。整理された文章でまとめることも大切ですが、まとまりきらない場合はそのまま書いていただいた方が、どこで詰まっているのかが分かります。
コードとして表現するまでにいくつかの壁があります。
https://discord.com/channels/1084280443945353267/1371297545514647562/1374353329357848717
また、途中で解説動画を見たことで、もともとの考え方から解き方自体が変わっているように感じました。まずは、自分の思い描いた解法を(計算量を無視しても)最後まで書き切ってみることも大切だと思います。
最終的には、自力で考え、いくつかの選択肢を持ち、その中から「将来誰かがそのコードを見ても困らないもの」を選択できると良いと思います。
途中で詰まること自体は全く問題ありませんし、できあがったものだけを載せる必要もありません。レビュアーを活用しながら進めていただけたらと思います。
There was a problem hiding this comment.
@h-masder
レビューいただきありがとうございます。
おっしゃる通り、もともと想定していた解き方は、動画と異なる方法を考えておりました。
今後はその過程も記載するようにいたします。
|
|
||
| Listの最初にダミーのnodeを置く発想はありませんでした。 | ||
| これを番兵(sentinel)と呼ばれることを初めて知りました。 | ||
| 番兵はheadより一歩遅れて進むことが分かると、理解が進みました。 |
There was a problem hiding this comment.
番兵は分岐を減らすものですので、番兵はあってもなくても解くことはできます。
番兵を使わない方法も書いてみるとよいと思います。
| node = node.Next | ||
| } | ||
| return sentinel.Next | ||
| } |
There was a problem hiding this comment.
コードとても読みやすくて良いと思います。
変数名ですが、preNodeよりもprevNodeのほうが適切かなと私は思いました。
| */ | ||
| func deleteDuplicates(head *ListNode) *ListNode { | ||
| sentinel := &ListNode{Next: head} | ||
| preNode := sentinel |
There was a problem hiding this comment.
こちらのコメントをご参照ください。
hemispherium/LeetCode_Arai60#10 (comment)
This : 82. Remove Duplicates from Sorted List II
Next : 2. Add Two Numbers