Skip to content

82 remove duplicates from sorted list ii#5

Open
MA-yo-TA wants to merge 3 commits into
mainfrom
82-Remove-Duplicates-from-Sorted-List-II
Open

82 remove duplicates from sorted list ii#5
MA-yo-TA wants to merge 3 commits into
mainfrom
82-Remove-Duplicates-from-Sorted-List-II

Conversation

@MA-yo-TA

@MA-yo-TA MA-yo-TA commented Jun 4, 2026

Copy link
Copy Markdown
Owner

dummy_head = ListNode(val=float("-inf"), next=head)
node = dummy_head
while node.next:
if node.next.next and node.next.val == node.next.next.val:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ここの比較でheadとダミーヘッドとの値の比較は行われていないので、今回ダミーヘッドの値は考慮しなくても良いかと思いました

ダミーヘッドは本当の head と値が重複しないように -100 <= Node.val <= 100 の外である必要がある。

valに-infが入っているとなにかしらに使われるのかなと思って読むので、dummy_headは以下のようにしてもよいかと思いましたが、特に今のままでも弊害はないはずです。好みかと思います。

dummy_head = ListNode(next=head)

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

確かにそうですね、初めに書いたコードでは dummy_head から比較していたのを head からの比較に変えた時にそこまで意識が回っていませんでした。

valに-infが入っているとなにかしらに使われるのかなと思って読むので

特殊な値を使う時は意図を持って(= 不要なら無闇に使わない)というのは一つの指針になりそうです。

ありがとうございます。


本体の方で、while のあとに if が来て処理が長い→else は短い処理なので、if の判定を入れ替えた方がいいかも。↑のコメントも T と F が入れ替わる形で。

変数名に略語を使うかどうかは流派によるだろうが、今回は関数名にも duplicate があるのでdup_val でもわかりそうと思いつつ、エディタが補完してくれるので略さずに書けというのもわかる。

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ある程度の規模の組織になると、ソースコードを書く量より読む量のほうが増えます。このとき、書くより読むのにかかるコストを下げたほうが、全体としてのコストが低くなります。読むにあたり、略語が使われていると、認知負荷が上がる場合があります。これを避けるため、フルスペルで書いたほうが良いのだと思います。

Coding Agent にコードを読み書きさせる場合はよく分からないです。フルスペルのほうが略語より、 Coding Agent がより正確に意味を読み取ってくれる気がするのですが、気のせいかもしれません。

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ありがとうございます。

そのお話聞いて、略語で書いても認知不可が上がらないかどうかは判断も難しいですしいちいちそれを気にするくらいなら常にフルスペルで書いた方が書く時の負担も軽いかもしれないなとも思いました。

dummy_head = ListNode(val=float("-inf"), next=head)
node = dummy_head
while node:
if node.next and node.next.next and node.next.val == node.next.next.val:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

step1 のように node.next is not None と書いたほうが良いと思います。

こちらのコメントをご参照ください。
ksaito0629/leetcode_arai60#1 (comment)

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ありがとうございます。
別問題でも同じコメントいただいてましたがスタイルガイドの「True/False Evaluations」のところの意図は理解したのでそのスタイルで書いてみようと思います。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants