LeetCode589—N叉树的前序遍历(java版)

题目描述:

标签:树  

给定一个 N 叉树,返回其节点值的 前序遍历 。

N 叉树 在输入中按层序遍历进行序列化表示,每组子节点由空值 null 分隔(请参见示例)。

 代码:

思路分析:

思路同二叉树的前序遍历。不过就是递归的时候使用增强for循环遍历每一个子结点对他们进行前序递归。

 《方法一:递归解法》

/*
// 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 {
    public List<Integer> preorder(Node root) {
        List<Integer> list = new ArrayList<Integer>();
        pre(root,list);
        return list;
    }

    public void pre(Node root,List<Integer> res){
        if(root == null){
            return;
        }
        res.add(root.val);
        List<Node> nodes = root.children;
        for(Node node : nodes){
            pre(node,res);
        }
    }
}

猜你喜欢

转载自blog.csdn.net/qq_40840749/article/details/115143307