Skip to content

103. Binary Tree Zigzag Level Order Traversal#27

Open
TakayaShirai wants to merge 1 commit intomainfrom
103_binary_tree_zigzag_level_order_traversal
Open

103. Binary Tree Zigzag Level Order Traversal#27
TakayaShirai wants to merge 1 commit intomainfrom
103_binary_tree_zigzag_level_order_traversal

Conversation

@TakayaShirai
Copy link
Copy Markdown
Owner

@TakayaShirai TakayaShirai self-assigned this Feb 18, 2026
Comment on lines +19 to +38
// あとは何があるかな。
// 値の格納と、次の層の格納をしなければならない。
// 分けて2回でやる方法がありそう。
// 箱の中でノードが一列に並んでいるとすれば、
// 値を格納する処理は、
// - 左から右で箱に格納されているノードを、そのままの前からの順で値を格納していく。
// - 右から左で箱に格納されているノードも、そのままの前からの順で値を格納していく。
// 次の層を格納する処理としては、
// - 左から右で箱に格納されているノードから、次の層のノードを右から左に格納する
// - 右から左に箱に格納されているノードから、次の層のノードを左から右に格納する
// つまり、
// - 左から右の順に格納されている場合は、最後尾から右、左の順に子ノードを格納する
// - 右から左の順に格納されている場合は、最後尾から左、右の順に子ノードを格納する。
// これを考えると、
// 値の格納と、次の層の格納の方向が逆で一度にどちらもやるのはむずかしそうに思える。だから、2回やりたい。
// もっといい方法があるかもしれないが、とりあえずこれでやってみる。計算量は O(N) で、2回走査が入るからそこの定数倍は入る。
// 処理としては、1回目の走査で、値の格納。2回目の走査で、子ノードの格納を2回。
// 結局走査が1回分増えるだけだから、3N か 4N の違いな気がする。だとするなら、N <= 2000 で Dart は 10^7 steps/s だとすると、
// 2000 / 10^7 = 2 * 10^-4 = 0.2 ms しか変わらないから、全く問題ない。後で合っているか確かめる。
// だいぶパズル的な要素があり、これを採用するのも、可読性的に微妙な気がする。
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

この辺の考察、幅出しと選定ができていて素晴らしいと思いました。

@mamo3gr
Copy link
Copy Markdown

mamo3gr commented Feb 18, 2026

特に違和感ありませんでした。実装パターンを幅広く試していて良かったです。

Copy link
Copy Markdown

@dxxsxsxkx dxxsxsxkx left a comment

Choose a reason for hiding this comment

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

良いと思います。

}

// 計測時間
// リスト生成には、時間がかかるらしい。インデックスの方法がやはり一番早いが、たいした違いはない。
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

複数のやり方の所要時間を都度計算する発想がなかったので、勉強になります。

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