题解 | #求二叉树的层序遍历#

求二叉树的层序遍历

http://www.nowcoder.com/practice/04a5560e43e24e9db4595865dc9c63a3

class Solution {
//可以不同队列,用一个id指向当前层的第一个node即可,需要同时维护node和val两个列表
public:
    /**
     * 
     * @param root TreeNode类 
     * @return int整型vector<vector<>>
     */
    vector<vector<int> > levelOrder(TreeNode* root) {
        // write code here
        vector<vector<int>> result;
        if(!root) return result;
        vector<int> head_val = {root->val};
        result.push_back(head_val);

        vector<vector<TreeNode*>> one_layer_node;
        vector<TreeNode*> head = {root};
        one_layer_node.push_back(head);



        int layer_id = 0;
        while(layer_id<one_layer_node.size()){

            vector<int> layer_val;
            vector<TreeNode*> layer_node;
            for(int i=0; i<one_layer_node[layer_id].size(); i++){

                if(one_layer_node[layer_id][i]->left){
                    layer_val.push_back(one_layer_node[layer_id][i]->left->val);
                    layer_node.push_back(one_layer_node[layer_id][i]->left);
                }
                if(one_layer_node[layer_id][i]->right){
                    layer_val.push_back(one_layer_node[layer_id][i]->right->val);
                    layer_node.push_back(one_layer_node[layer_id][i]->right);
                }
            }
            if(layer_node.size()>0){
                one_layer_node.push_back(layer_node);
                result.push_back(layer_val);
            }
            layer_id+=1;

        }

        return result;
    }
};


注意!此信息未认证,请谨慎判断信息的真实性!

全部评论
空

相关内容推荐

头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
2022-12-16 02:48
门头沟学院_2022
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像 头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像 头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
点赞 收藏 评论
分享

全站热榜

正在热议