
 https://leetcode-cn.com/problems/n-ary-tree-level-order-traversal/
1.队列BST
class Solution {
    public List<List<Integer>> levelOrder(Node root) {
        if (root == null) {
            return new ArrayList<>();
        }
        List<List<Integer>> res = new ArrayList<>();
        Queue<Node> queue = new LinkedList<>();
        queue.offer(root);
        while(!queue.isEmpty()){
            int size = queue.size();
            List<Integer> list = new ArrayList<>();
            while(size-->0){
                Node node = queue.poll();
                list.add(node.val);
                if(node.children!=null){
                    queue.addAll(node.children);
                    //for(Node child : node.children){
                      //  queue.offer(child);
                    //}
                }
            }
            res.add(list);
        }
        return res;
    }
}2.递归
class Solution {
    private List<List<Integer>> result = new ArrayList<>();
    public List<List<Integer>> levelOrder(Node root) {
        if (root != null) traverseNode(root, 0);
        return result;
    }
    private void traverseNode(Node node, int level) {
        if (result.size() <= level) {
            result.add(new ArrayList<>());
        }
        result.get(level).add(node.val);
        for (Node child : node.children) {
            traverseNode(child, level + 1);
        }
    }
}                









