mirror of
https://github.com/20kaushik02/leetcode-gulag.git
synced 2025-12-06 08:54:07 +00:00
day 18: 102-binary-tree-level-order-traversal
This commit is contained in:
parent
37153b50f1
commit
9ad7de8dd5
15
102-binary-tree-level-order-traversal/driver.cpp
Normal file
15
102-binary-tree-level-order-traversal/driver.cpp
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
#include "soln.hpp"
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
TreeNode n7 = TreeNode(7);
|
||||||
|
TreeNode n15 = TreeNode(15);
|
||||||
|
TreeNode n20 = TreeNode(20, &n15, &n7);
|
||||||
|
TreeNode n5 = TreeNode(5);
|
||||||
|
TreeNode n9 = TreeNode(9, &n5, nullptr);
|
||||||
|
TreeNode n3 = TreeNode(3, &n9, &n20);
|
||||||
|
vector<vector<int>> answer = {{3}, {9, 20}, {5, 15, 7}};
|
||||||
|
Solution soln;
|
||||||
|
cout << "Level-order traversal correct? " << soln.test(&n3, answer) << endl;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
42
102-binary-tree-level-order-traversal/soln.cpp
Normal file
42
102-binary-tree-level-order-traversal/soln.cpp
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
#include "soln.hpp"
|
||||||
|
|
||||||
|
vector<vector<int>> Solution::levelOrder(TreeNode *root)
|
||||||
|
{
|
||||||
|
vector<TreeNode *> tree_queue;
|
||||||
|
vector<vector<int>> traversal;
|
||||||
|
if (root == nullptr)
|
||||||
|
{
|
||||||
|
return traversal;
|
||||||
|
}
|
||||||
|
TreeNode *current = root;
|
||||||
|
tree_queue.push_back(current);
|
||||||
|
while (!tree_queue.empty())
|
||||||
|
{
|
||||||
|
traversal.push_back(vector<int>());
|
||||||
|
for (auto node : tree_queue)
|
||||||
|
{
|
||||||
|
if (node != nullptr)
|
||||||
|
{
|
||||||
|
traversal.back().push_back(node->val);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
int level_size = tree_queue.size();
|
||||||
|
for (int i = 0; i < level_size; i++)
|
||||||
|
{
|
||||||
|
if (tree_queue[0] != nullptr)
|
||||||
|
{
|
||||||
|
if (tree_queue[0]->left)
|
||||||
|
tree_queue.push_back(tree_queue[0]->left);
|
||||||
|
if (tree_queue[0]->right)
|
||||||
|
tree_queue.push_back(tree_queue[0]->right);
|
||||||
|
}
|
||||||
|
tree_queue.erase(tree_queue.begin());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return traversal;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Solution::test(TreeNode *root, vector<vector<int>> answer)
|
||||||
|
{
|
||||||
|
return levelOrder(root) == answer;
|
||||||
|
}
|
||||||
17
102-binary-tree-level-order-traversal/soln.hpp
Normal file
17
102-binary-tree-level-order-traversal/soln.hpp
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
#include <bits/stdc++.h>
|
||||||
|
using namespace std;
|
||||||
|
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:
|
||||||
|
vector<vector<int>> levelOrder(TreeNode *root);
|
||||||
|
bool test(TreeNode *root, vector<vector<int>> answer);
|
||||||
|
};
|
||||||
Loading…
x
Reference in New Issue
Block a user