N阶二叉树: class Tree {public int val;public List<Tree> children;public Tree() {}public Tree(int _val, List<Tree> _children) {val = _val;children = _children;}}迭代法遍历:public List<Integer> preorder(Tree root) {List<Integer> list=new ArrayList<Integer>();if(root==null)return list;Stack<Tree> stack=new Stack<Tree>();stack.add(root);while (!stack.isEmpty()){Tree tree=stack.pop();list.add(tree.val);if (tree.children!=null){int n=tree.children.size();for (int i=n-1;i>=0;i--){stack.add(tree.children.get(i));}}}return list;} }递归法遍历:List<Integer> list = new ArrayList<>();public List<Integer> preorder(Tree root) {if (root == null) {return list;} else {list.add(root.val);for (int i = 0; i < root.children.size(); i++) {preorder(root.children.get(i));}return list;}} }