二叉树层次遍历的变形,记录遍历的层号,偶数层要进行翻转。代码如下
class Solution {
public:
vector<vector<int> > Print(TreeNode* pRoot) {
vector<vector<int> >re;
if(pRoot==NULL){
return re;
}
queue<TreeNode*> qu;
qu.push(pRoot);
int k=1;
while(!qu.empty()){
int t=qu.size();
vector<int> vtemp;
for(int i=0;i<t;i++){
TreeNode* p=qu.front();
qu.pop();
vtemp.push_back(p->val);
if(p->left!=NULL){
qu.push(p->left);
}
if(p->right!=NULL){
qu.push(p->right);
}
}
if(k%2==0){
reverse(vtemp.begin(),vtemp.end());
}
re.push_back(vtemp);
++k;
}
return re;
}
};