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

执行结果:

通过

显示详情

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

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

题目:

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

例如,给定一个 3叉树 :

 

 

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

思路:

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

代码:

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

    public Node() {}

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

 

 

 

 

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页