N-ary Tree Level Order Traversal

from collections import deque

class Solution:
    def levelOrder(self, root: 'Node') -> List[List[int]]:
        dq = deque([])
        vset = set([])
        result = {}
        dq.append((0, root))
        while dq:
            lvl, node = dq.pop()
            if node:
                for child in node.children:
                    dq.appendleft((1 + lvl, child))
                if lvl not in result:
                    result[lvl] = []
                result[lvl].append(node.val)
        return [result[k] for k in sorted(result)]