forked from zapellass123/OpenEmailGenerator
-
Notifications
You must be signed in to change notification settings - Fork 0
/
binary-tree-level-order-traversal
24 lines (24 loc) · 1.11 KB
/
binary-tree-level-order-traversal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Solution {
public:
vector<vector<int>> levelOrder(TreeNode* root) {
vector<vector<int>> answer;
if(!root) return answer; //if root is NULL then return
queue<TreeNode*> q; //for storing nodes
q.push(root); //push root initially to the queue
while(!q.empty()) //while queue is not empty go and follow few steps
{
int size=q.size(); //storing queue size for while loop
vector<int> v; //for storing nodes at the same level
while(size--)
{
TreeNode* temp=q.front(); //store front node of queue and pop it from queue
q.pop();
v.push_back(temp->val); //push it to v
if(temp->left) q.push(temp->left); //if left subtree exist for temp then store it into the queue
if(temp->right) q.push(temp->right); //if right subtree exist for temp then store it into the queue
}
answer.push_back(v); //push v into answer, as v consist of all the nodes of current level
}
return answer; //return the answer
}
};