/* // Definition for a Node. class Node { public int val; public List children; public Node() {} public Node(int _val) { val = _val; } public Node(int _val, List _children) { val = _val; children = _children; } }; */ class Solution { private void levelOrder(ArrayList> traversal, Node root, int level) { if (root == null) { return; } if (level >= traversal.size()) { traversal.add(new ArrayList()); } traversal.get(level).add(root.val); for (var child : root.children) { levelOrder(traversal, child, level + 1); } } public List> levelOrder(Node root) { ArrayList> result = new ArrayList<>(); levelOrder(result, root, 0); return result; } }