Conversation
| if (level % 2 == 0) { | ||
| values.emplace_back(node->val); | ||
| } else { | ||
| auto it = values.begin(); |
There was a problem hiding this comment.
@fhiyo
レビューありがとうございます。
確かに不要でしたstep1_2.cppにて修正しました。
| current_nodes = next_level_nodes; | ||
| level_to_zigzag_values.emplace_back(values); |
There was a problem hiding this comment.
- 102. Binary Tree Level Order Traversal #28 (comment)
- 102. Binary Tree Level Order Traversal #28 (comment)
ここと同じですね。詳しくないので自信はないですが <utility>ヘッダにある std::moveを使えば良いかもしれないです
There was a problem hiding this comment.
@fhiyo
102で指摘されてからこの辺り調べ直しましした。
また、step1_2とstep3_2にstd::moveを使ったバージョンを作成しました🙇
ありがとうございます。
| values.emplace_back(node->val); | ||
| } else { | ||
| auto it = values.begin(); | ||
| values.insert(it, node->val); |
| class Solution { | ||
| public: | ||
| vector<vector<int>> zigzagLevelOrder(TreeNode* root) { | ||
| vector<vector<int>> level_to_zigzag_values = {}; |
| if (!root) { | ||
| return level_to_zigzag_values; | ||
| } | ||
| vector<TreeNode*> current_nodes = {root}; |
There was a problem hiding this comment.
@Yoshiki-Iwasa
意識しておりませんでした。ありがとうございます!!
下記の通りでした。
変数初期化時には不要のようです。
https://google.github.io/styleguide/cppguide.html#Variable_and_Array_Initialization
if (x == kFoo) { return new Foo(); }のように一行で書く場合は、スペースが必要なようです。
https://google.github.io/styleguide/cppguide.html#Formatting_Looping_Branching
| reverse(values.begin(), values.end()); | ||
| } | ||
| level++; | ||
| current_nodes = next_level_nodes; |
| next_level_nodes.emplace_back(std::move(node->left)); | ||
| } | ||
| if (node->right) { | ||
| next_level_nodes.emplace_back(std::move(node->right)); |
There was a problem hiding this comment.
@fhiyo
レビューありがとうございます。意味ないですね。。。
アドレス値を持っているだけなのでコピーしてもmoveしても変わらないです。
気をつけます。
修正しました🙇
|
拝見しました。 |
問題へのリンク
https://leetcode.com/problems/binary-tree-zigzag-level-order-traversal/description/
問題文(プレミアムの場合)
備考
次に解く問題の予告
Validate Binary Search Tree
フォルダ構成
LeetCodeの問題ごとにフォルダを作成します。
フォルダ内は、step1.cpp、step2.cpp、step3.cppとdeque.cppとmemo.mdとなります。
memo.md内に各ステップで感じたことを追記します。