Leetcode刷题java之589. N叉树的前序遍历

执行结果:

通过

显示详情

执行用时 :3 ms, 在所有 Java 提交中击败了89.20% 的用户

内存消耗 :55.5 MB, 在所有 Java 提交中击败了58.08%的用户

题目:

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

例如,给定一个 3叉树 :

 

Leetcode刷题java之589. N叉树的前序遍历_第1张图片

 

返回其前序遍历: [1,3,5,6,2,4]

思路:

利用递归算法进行前序遍历,与二叉树的前序遍历是类似的

代码:

/*
// Definition for a Node.
class Node {
    public int val;
    public List children;

    public Node() {}

    public Node(int _val,List _children) {
        val = _val;
        children = _children;
    }
};
*/
class Solution {
    public List preorder(Node root) {
        List res=new ArrayList<>();
        if(root==null)
        {
            return res;
        }
        help(res,root);
        return res;
    }
    public void help(List res,Node root)
    {
        if(root==null)
        {
            return;
        }
        //先根再其他节点
        res.add(root.val);
        //这里是与二叉树的区别,二叉树的时候只需左和右就行,N叉树则需遍历从左到右
        for(Node node:root.children)
        {
            help(res,node);
        }
    }
}

 

 

 

 

你可能感兴趣的:(java,Leecode,递归算法,前序遍历)