zoukankan      html  css  js  c++  java
  • (N叉树 BFS) leetcode429. N-ary Tree Level Order Traversal

    Given an n-ary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level).

    For example, given a 3-ary tree:

    We should return its level order traversal:

    [
         [1],
         [3,2,4],
         [5,6]
    ]
    

    Note:

    1. The depth of the tree is at most 1000.
    2. The total number of nodes is at most 5000.

    -----------------------------------------------------------------------------------------------------------------------------------

    这个层序遍历,自然用BFS写。和二叉树的层序遍历类似,连代码不会相差很大。

    C++代码:

    /*
    // Definition for a Node.
    class Node {
    public:
        int val;
        vector<Node*> children;
    
        Node() {}
    
        Node(int _val, vector<Node*> _children) {
            val = _val;
            children = _children;
        }
    };
    */
    class Solution {
    public:
        vector<vector<int>> levelOrder(Node* root) {
            if(!root) return {};
            queue<Node*> q;
            q.push(root);
            vector<vector<int> > vec;
            while(!q.empty()){
                vector<int> vec1;
                int ans = q.size();
                for(int i = ans;i > 0; i--){
                    auto t = q.front();
                    q.pop();
                    vec1.push_back(t->val);
                    for(Node *cur:t->children){
                        q.push(cur);
                    }
                }
                vec.push_back(vec1);
            }
            return vec;
        }
    };
  • 相关阅读:
    [Leetcode] 225. Implement Stack using Queues
    前端面试题2
    数据结构_stack
    数据结构 station
    数据结构_wow(泡泡的饭碗)
    数据结构_XingYunX(幸运儿)
    数据结构 nxd(顺序对)
    数据结构 hbb(汉堡包)
    数据结构 elegant_sequence(优雅的序列)
    数据结构 i_love(我喜欢)
  • 原文地址:https://www.cnblogs.com/Weixu-Liu/p/10776108.html
Copyright © 2011-2022 走看看