Java recursive solution
\nclass Solution {\n    public List<Integer> postorder(Node root) {\n        List<Integer> list = new ArrayList<>();\n        if (root == null) return list;\n  
```\nclass Solution {\n    public List<Integer> postorder(Node root) {\n        List<Integer> list = new ArrayList<>();\n        if (root == null) return list;\n        postorder(root, list);\n        return list;\n    }\n\n    private void postorder(Node root, List<Integer> list) {\n        if (root == null) return;\n        for (Node child : root.children) {\n            postorder(child, list);\n        }\n        list.add(root.val);\n    }\n}\n```
[]