n叉树的层序遍历

vector> levelOrder(Node* root) {

        queue que;

        if (root != NULL) que.push(root);

        vector> result;

        while (!que.empty()) {

            int size = que.size();

            vector vec;

            for (int i = 0; i < size; i++) {

                Node* node = que.front();

                que.pop();

                vec.push_back(node->val);

                for (int i = 0; i < node->children.size(); i++) { // 将节点孩子加入队列

                    if (node->children[i]) que.push(node->children[i]);

                }

            }

            result.push_back(vec);

        }

        return result;

 

    }

 

你可能感兴趣的:(算法)