class Node {
public int val;
public List<Node> children;
public Node(){}
public Node(int _val){
val = _val;}
public Node(int _val, List<Node> _children){
val = _val;
children = _children;}}
public List<Integer> preorder(Node root){
List<Integer> res = new ArrayList<>();
dfs(root, res);return res;}
public void dfs(Node root, List<Integer> res){if(root != null){
res.add(root.val);
List<Node> children = root.children;for(Node node : children){
dfs(node, res);}}}
N叉树BFS遍历
public class BFSNTree {
class Node {
public int val;
public List<Node> children;
public Node(){}
public Node(int _val){
val = _val;}
public Node(int _val, List<Node> _children){
val = _val;
children = _children;}}
public List<List<Integer>> levelOrder(Node root){
List<List<Integer>> res = new ArrayList<>();if(root == null){return res;}
LinkedList<Node> queue = new LinkedList<>();
queue.offer(root);
int num = queue.size();
List<Integer> list = new ArrayList<>();
while(!queue.isEmpty()){
num --;
Node rootNode = queue.poll();
list.add(rootNode.val);
List<Node> children = rootNode.children;for(Node node : children){
queue.offer(node);}if(num == 0){
res.add(list);
num = queue.size();
list = new ArrayList<>();}}return res;}
N叉树前DFS遍历class Node { public int val; public List<Node> children; public Node() {} public Node(int _val) { val = _val; } public Node(int _val, List<Node> _children) { v