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

把二叉树打印成多行

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;
    }

};

全部评论

相关推荐

tttk_:就是人多。 有的是条件和你差不多然后没在od待过的人。 所以就拿这个筛你了。 就和卡学历一样,人太多了。 从公司角度,这样做节省精力,更方便。 没办法谁叫现在人多呢
第一份工作能做外包吗?
点赞 评论 收藏
分享
06-10 23:36
已编辑
首都经济贸易大学 C++
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-21 13:38
8月实习会变多吗现在还没找到实习该怎么办...回复的hr好少
码农索隆:3-4月就要开始找,基本上6月份就发offer,7月初已经开始暑期实习了。
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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