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);
}
}