题目:
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,#,#,15,7},
3
/ \
9 20
/ \
15 7
return its level order traversal as:
[
[3],
[9,20],
[15,7]
]
程序:
层序遍历
class Solution {
public:
vector<vector<int> > levelOrder(TreeNode *root) {
vector<vector<int>> res;
if(root==NULL)
return res;
vector<int> v;
queue<TreeNode*> que;
que.push(root);
TreeNode *p;
while(!que.empty())
{
vector<TreeNode*> temp;
while(!que.empty())
{
temp.push_back(que.front());
que.pop();
}
for(int i=0;i<temp.size();i++)
{
v.push_back(temp[i]->val);
if(temp[i]->left)
que.push(temp[i]->left);
if(temp[i]->right)
que.push(temp[i]->right);
}
res.push_back(v);
v.clear();
}
return res;
}
};