Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Definition for a binary tree node.
- * struct TreeNode {
- * int val;
- * TreeNode *left;
- * TreeNode *right;
- * TreeNode() : val(0), left(nullptr), right(nullptr) {}
- * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
- * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
- * };
- */
- class Solution {
- public:
- const std::list<TreeNode*> GetNextLevel(const std::list<TreeNode*>& lst)
- {
- std::list<TreeNode*> ret;
- for (const auto & x : lst)
- {
- if (x->left != nullptr)
- ret.push_back(x->left);
- if (x->right != nullptr)
- ret.push_back(x->right);
- }
- return ret;
- }
- vector<vector<int>> levelOrder(TreeNode* root)
- {
- vector<vector<int>> ret;
- if (root)
- {
- std::list<TreeNode*> n;
- n.push_back(root);
- ret.emplace_back(vector<int>{root->val});
- while (n.size())
- {
- vector<int> level;
- n = std::move(GetNextLevel(n));
- if (n.size())
- {
- for (const auto & it: n)
- {
- level.push_back(it->val);
- }
- ret.push_back(level);
- }
- }
- }
- return ret;
- }
- };
Add Comment
Please, Sign In to add comment