题目:
/**
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
class Solution {
public:
/**
*
* @param root TreeNode类
* @return int整型vector<vector<>>
*/
vector<vector<int> > levelOrder(TreeNode* root) {
vector<vector<int>> ans;
queue<TreeNode*> que;
queue<int> tick;
if(root!=NULL)
{
que.push(root);
tick.push(0);
}
else
{
return ans;
}
while(!que.empty())
{
TreeNode* q=que.front();
int p=tick.front();
que.pop();
tick.pop();
if(ans.size()<p+1)
{
vector<int> newvector;
ans.push_back(newvector);
}
ans[p].push_back(q->val);
if(q->left!=NULL)
{
que.push(q->left);
tick.push(p+1);
}
if(q->right!=NULL)
{
que.push(q->right);
tick.push(p+1);
}
}
return ans;
}
};
记得每次进入新的一层时候,需要新建立一个vector