binary-tree-level-order-traversal 1.0.0
Binary Tree Level Order Traversal
Loading...
Searching...
No Matches
main.cpp
Go to the documentation of this file.
1#include <iostream>
2#include <vector>
3#include <queue>
4
5using namespace std;
6
10struct TreeNode {
11 int val;
14 TreeNode() : val(0), left(nullptr), right(nullptr) {}
15 TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
17};
18
20{
21public:
22 vector<vector<int>> levelOrder(TreeNode* root)
23 {
24 vector<vector<int>> answer = {};
25 if (root)
26 {
27 queue<pair<TreeNode*, int>> node_queue; // the first is the node, the second is a level
28 node_queue.push({root, 0});
29 while (!node_queue.empty())
30 {
31 TreeNode* current = node_queue.front().first;
32 int level = node_queue.front().second;
33 node_queue.pop();
34
35 if ((int)answer.size() > level)
36 answer[level].push_back(current->val);
37 else
38 answer.push_back(vector<int>{current->val});
39
40 level++;
41 if (current->left)
42 node_queue.push({current->left, level});
43 if (current->right)
44 node_queue.push({current->right, level});
45 }
46 }
47 return answer;
48 }
49};
50
52{
53 if (root == nullptr)
54 return;
55 delete_tree(root->left);
56 delete_tree(root->right);
57 delete root;
58}
59
60int main()
61{
62 TreeNode* root = new TreeNode(3, new TreeNode(9), new TreeNode(20, new TreeNode(15), new TreeNode(7)));
63 Solution sol;
64 vector<vector<int>> answer = sol.levelOrder(root);
65 for (vector<int>& array: answer)
66 {
67 for (int el: array)
68 cout << el << " ";
69 cout << endl;
70 }
71 delete_tree(root);
72 return 0;
73}
vector< vector< int > > levelOrder(TreeNode *root)
Definition main.cpp:22
void delete_tree(TreeNode *root)
Definition main.cpp:51
int main()
Definition main.cpp:60
Definition for a binary tree node.
Definition main.cpp:10
int val
Definition main.cpp:11
TreeNode * left
Definition main.cpp:12
TreeNode(int x, TreeNode *left, TreeNode *right)
Definition main.cpp:16
TreeNode * right
Definition main.cpp:13
TreeNode(int x)
Definition main.cpp:15
TreeNode()
Definition main.cpp:14