Binary Tree Zigzag Level Order Traversal

来源:互联网 发布:淘宝 非常小非常小的店 编辑:程序博客网 时间:2024/06/11 06:20
/** * Definition for binary tree * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public:    vector<vector<int> > zigzagLevelOrder(TreeNode *root)     {        vector<int> cur;        vector<vector<int>> result;        if(root==NULL)            return result;        queue<TreeNode* > q;        q.push(root);        int count=1;        bool left2right=true;        while(!q.empty())        {            TreeNode* temp=q.front();            q.pop();            cur.push_back(temp->val);            --count;            if(temp->left)                q.push(temp->left);            if(temp->right)                q.push(temp->right);            if(count==0)            {                count=q.size();                if(!left2right)                    reverse(cur.begin(),cur.end());                result.push_back(cur);                left2right=!left2right;                cur.clear();            }        }                return result;    }};

0 0
原创粉丝点击