本题源自剑指offer
-------------------------------------------------
按层打印二叉树用队列,在用俩个变量,一个记录本层未打印的节点数,另一个记录下一层的节点的数量。
vector<vector<int> > Print(TreeNode* pRoot) {
vector<vector<int> >result;
if(pRoot==NULL)
return result;
vector<int> levelResult;
int nextLevel=0;
int toBePrint=1;
queue<TreeNode*> treeDeq;
treeDeq.push(pRoot);
while(!treeDeq.empty()){
TreeNode* pNode=treeDeq.front();
treeDeq.pop();
levelResult.push_back(pNode->val);
toBePrint--;
if(pNode->left!=NULL){
treeDeq.push(pNode->left);
nextLevel++;
}
if(pNode->right!=NULL){
treeDeq.push(pNode->right);
nextLevel++;
}
if(toBePrint==0){
result.push_back(levelResult);
levelResult.clear();
toBePrint=nextLevel;
nextLevel=0;
}
}
return result;
}