1 class Solution {
2 public:
3 vector<vector<int> > Print(TreeNode* pRoot) {
4 vector<vector<int>> res;
5 if(pRoot == NULL)
6 return res;
7 stack<TreeNode*> num[2];
8 int flag[2];
9 int i=0;
10 num[0].push(pRoot);
11 // flag[0]=1;
12 while(!num[0].empty() || !num[1].empty())
13 {
14 vector<int> prin;
15 while(!num[i].empty())
16 {
17
18 prin.push_back(num[i].top()->val);
19 if(i==1)
20 {
21 if(num[i].top()->right)
22 num[1-i].push(num[i].top()->right);
23 if(num[i].top()->left)
24 num[1-i].push(num[i].top()->left);
25 }
26 else
27 {
28 if(num[i].top()->left)
29 num[1-i].push(num[i].top()->left);
30 if(num[i].top()->right)
31 num[1-i].push(num[i].top()->right);
32 }
33 num[i].pop();
34
35 }
36 res.push_back(prin);
37 i=1-i;
38 }
39 return res;
40 }
41
42 };