1、我的代码1:
/*
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
TreeNode(int x) :
val(x), left(NULL), right(NULL) {
}
};
*/
class Solution {
public:
vector<vector<int> > Print(TreeNode* pRoot) {
vector<vector<int>> res;
if(!pRoot) return res;
vector<TreeNode*> v1, v2;
v1.push_back(pRoot);
int k = 1;
while(!v1.empty()) {
if(k++ % 2 == 1) {
for(int i = v1.size()-1;i >= 0;i--) {
if(v1[i]->right) v2.push_back(v1[i]->right);
if(v1[i]->left) v2.push_back(v1[i]->left);
}
} else {
for(int i = v1.size()-1;i >= 0;i--) {
if(v1[i]->left) v2.push_back(v1[i]->left);
if(v1[i]->right) v2.push_back(v1[i]->right);
}
}
vector<int> vtmp;
for(int i = 0;i < v1.size();i++) {
vtmp.push_back(v1[i]->val);
}
res.push_back(vtmp);
v1.swap(v2);
v2.clear();
}
return res;
}
};