level order
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] ]
answer:
class Solution {
public:
vector<vector<int>> levelOrder(TreeNode* root) {
vector<TreeNode*> pre;
vector<vector<int>> result;
pre.push_back(root);
while(!pre.empty()){
myLevel(pre,result);
}
return result;
}
void myLevel(vector<TreeNode*> & pre,vector<vector<int>> & result){
vector<int> level;
vector<TreeNode*> temp;
for(int i = 0; i < pre.size(); i ++){
TreeNode * root = pre[i];
if(root){
level.push_back(root->val);
temp.push_back(root->left);
temp.push_back(root->right);
}
}
if(!level.empty())
result.push_back(level);
pre = temp;
return;
}
};