按之字形顺序打印二叉树

按之字形顺序打印二叉树

http://www.nowcoder.com/questionTerminal/91b69814117f4e8097390d107d2efbe0

双对列,一个是从左到右,另一个是从右到左,再奇偶打印
/*
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> > ans;
        if(!pRoot)
        {
            return ans;
        }
        queue<TreeNode*> lq;
        queue<TreeNode*> rq;
        lq.push(pRoot);
        rq.push(pRoot);
        int count = 0;
        while(lq.size())
        {
            count++;
            vector<int> v;
            int len = lq.size();
            for(int i=0;i<len;i++)
            {
                    TreeNode* ltemp=lq.front();
                    TreeNode* rtemp=rq.front();
                    if(count%2==1)
                        v.push_back(ltemp->val);
                    else
                        v.push_back(rtemp->val);
                    lq.pop();
                    rq.pop();
                    if(ltemp->left)
                        lq.push(ltemp->left);
                    if(ltemp->right)
                        lq.push(ltemp->right);
                    if(rtemp->right)
                        rq.push(rtemp->right);           
                    if(rtemp->left)
                        rq.push(rtemp->left);
            }
            ans.push_back(v);
        }
        return ans;
    }
    
};


全部评论

相关推荐

明天不下雨了:兄弟你是我今天看到的最好看的简历(我说的是简历风格跟简历书写)把985 211再搞亮一点。投boss就说;您好,我华科(985)研二在读,本科211。对您的岗位很感兴趣,希望能获得一次投递机会。
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务