102. Binary Tree Level Order Traversal
Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level).
For example:
Given binary tree [3,9,20,null,null,15,7]
,
3 / \ 9 20 / \ 15 7
return its level order traversal as:
[ [3], [9,20], [15,7] ]
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
vector< vector<int> > levelOrder(TreeNode* root){
vector<TreeNode*> node(1, root), node_temp;
vector<int> temp;
vector< vector<int> > result;
while(!node.empty() && node[0] != NULL){
node_temp.clear();
temp.clear();
for(int i = 0; i < node.size(); i++){
temp.push_back(node[i]->val);
if(node[i]->left != NULL){
node_temp.push_back(node[i]->left);
}
if(node[i]->right != NULL){
node_temp.push_back(node[i]->right);
}
}
result.push_back(temp);
node = node_temp;
}
return result;
}