N 叉树的前序遍历
题目链接:力扣题目链接
难度:简单
给定一个 n 叉树的根节点 root ,返回 其节点值的 前序遍历 。
n 叉树 在输入中按层序遍历进行序列化表示,每组子节点由空值 null 分隔(请参见示例)。
示例:
输入:root = [1,null,3,2,4,null,5,6]
输出:[1,3,5,6,2,4]
节点的定义
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;
}
}
思路
递归思路比较简单,NN 叉树的前序遍历与二叉树的前序遍历的思路和方法基本一致,可以参考「144. 二叉树的前序遍历」的方法,每次递归时,先访问根节点,然后依次递归访问每个孩子节点即可。
代码
class Solution{
public List<Integer> preorder(Node root){
List<Integer> result = new ArrayList<>();
preorder(root,result);
return result;
}
private void preorder(Node root,List<Integer> result){
if(root == null){
return;
}
result.add(root.val);
for(Node child : root.children){
preorder(child,result);
}
}
}