N 叉树的前序遍历
题目描述
前序遍历
递归思路比较简单,NNN 叉树的前序遍历与二叉树的前序遍历的思路和方法基本一致,每次递归时,先访问根节点,然后依次递归访问每个孩子节点即可。
代码演示:
/*
// Definition for a Node.
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;
    }
};
*/
class Solution {
    List<Integer> ans = new ArrayList<>();
    public List<Integer> preorder(Node root) {
        dfs(root);
        return ans;
    }
    
    public void dfs(Node root){
        if(root == null){
            return;
        }
        ans.add(root.val);
        for(Node node : root.children){
            dfs(node);
        }
    }
}

后序遍历
代码演示:
/*
// Definition for a Node.
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;
    }
};
*/
class Solution {
     List<Integer> ans = new ArrayList<>();
    public List<Integer> postorder(Node root) {
        dfs(root);
        return ans;
    }
    void dfs(Node root){
        if(root == null){
            return ;
        }
        for(Node node : root.children){
            dfs(node);
        }
        ans.add(root.val);
    }
}










