/* // Definition for a Node. class Node { public int val; public List<Node> children; public Node() {} public Node(int _val,List<Node> _children) { val = _val; children = _children; } }; */ class Solution { public List<List<Integer>> levelOrder(Node root) { LinkedList<List<Integer>> list = new LinkedList<>(); if (root == null) return list; LinkedList<Node> currLV = new LinkedList<>(); currLV.add(root); while (currLV.size() != 0) { LinkedList<Integer> li = new LinkedList<>(); for (Node node : currLV) { li.add(node.val); } list.add(li); LinkedList<Node> nextLV = new LinkedList<>(); while (currLV.size() != 0) { Node curr = currLV.poll(); for (Node node : curr.children) { if (node != null) nextLV.add(node); } } currLV = nextLV; } return list; } }