按之字形顺序打印二叉树

来源:互联网 发布:北京警察网络联系 编辑:程序博客网 时间:2024/05/29 17:36
/*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) {         queue<TreeNode *>que;         vector<vector<int> >res;         if(pRoot==NULL)               return res;         int flag = false;         que.push(pRoot);         while(!que.empty())          {             int size = que.size();             vector<int>vec;             for(int i=0;i<size;++i)             {                TreeNode *tmp = que.front();                que.pop();                vec.push_back(tmp->val);                if(tmp->left)                     que.push(tmp->left);                if(tmp->right)                      que.push(tmp->right);             }             if(flag)                  reverse(vec.begin(),vec.end());             res.push_back(vec);              flag = !flag;          }        return res;       }     };
原创粉丝点击