c++

把二叉树打印成多行

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

/*
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> > result;
        if (pRoot == NULL) return result;
        queue<TreeNode *> que;
        que.push(pRoot);
        while(!que.empty()) {
            int len = que.size();
            vector<int> level;
            while(len--) {
                TreeNode* node = que.front();
                que.pop();
                level.push_back(node->val);
                if (node->left) que.push(node->left);
                if (node->right) que.push(node->right);
            }
            result.push_back(level);
        }
        return result;
    }
};
全部评论
你的方法非常棒!给你点赞
点赞 回复 分享
发布于 2020-07-27 19:08
谢谢!官方题解里没有考虑边界情况(pRoot==NULL),害得代码一直不通过……
点赞 回复 分享
发布于 2020-06-20 12:08

相关推荐

鬼迹人途:你去投一投尚游游戏,服务器一面,第一个图算法,做完了给你一个策略题,你给出方案他就提出低概率问题,答不上当场给你挂
点赞 评论 收藏
分享
评论
6
收藏
分享

创作者周榜

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