n 叉树 在输入中按层序遍历进行序列化表示，每组子节点由空值 null 分隔（请参见示例）。

class Solution {    public List<Integer> preorder(Node root) {        List<Integer> res = new ArrayList<Integer>();        if (root == null) {            return res;        }        Map<Node, Integer> map = new HashMap<Node, Integer>();        Deque<Node> stack = new ArrayDeque<Node>();        Node node = root;        while (!stack.isEmpty() || node != null) {            while (node != null) {                res.add(node.val);                stack.push(node);                List<Node> children = node.children;                if (children != null && children.size() > 0) {                    map.put(node, 0);                    node = children.get(0);                } else {                    node = null;                }            }            node = stack.peek();            int index = map.getOrDefault(node, -1) + 1;            List<Node> children = node.children;            if (children != null && children.size() > index) {                map.put(node, index);                node = children.get(index);            } else {                stack.pop();                map.remove(node);                node = null;            }        }        return res;    }}