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