题解 | #把二叉树打印成多行#

把二叉树打印成多行

http://www.nowcoder.com/practice/445c44d982d04483b04a54f298796288

采用两个队列完成,交替保存每一行。跟剑指offer-按之字形顺序打印二叉树 https://www.nowcoder.com/practice/91b69814117f4e8097390d107d2efbe0?tab=note很像。那道题用到两个栈 class Solution { public: vector<vector > Print(TreeNode* pRoot) { vector<vector> result;

        if(pRoot==nullptr) return result;
        queue<TreeNode*> q1,q2;
        q1.push(pRoot);
    
        while(q1.size()||q2.size()){
                TreeNode* cur=NULL;
                vector<int> ret1,ret2;
            while(!q1.empty()){
                cur=q1.front();
                if(cur->left)
                    q2.push(cur->left);
                if(cur->right)
                    q2.push(cur->right);
                ret1.push_back(q1.front()->val);
                q1.pop();
            }
            if(ret1.size())
                result.push_back(ret1);
            while(!q2.empty()){
                cur=q2.front();
                if(cur->left)
                   q1.push(cur->left);
                if(cur->right)
                    q1.push(cur->right);
                ret2.push_back(q2.front()->val);
                q2.pop();
        }
            if(ret2.size())
                result.push_back(ret2);
        }
         
        return result;
    }

};

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-16 18:03
点赞 评论 收藏
分享
05-30 12:03
山西大学 C++
offer来了我跪着...:不是骗子,等到测评那一步就知道为啥这么高工资了
点赞 评论 收藏
分享
07-20 21:57
已编辑
门头沟学院 Java
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务