美文网首页
【教3妹学编程-算法题】N 叉树的前序遍历

【教3妹学编程-算法题】N 叉树的前序遍历

作者: 程序员小2 | 来源:发表于2024-02-17 07:45 被阅读0次
    瑟瑟发抖

    2哥 : 叮铃铃,3妹,准备复工了啊,过年干嘛呢,是不是逛吃逛吃,有没有长胖呢。
    3妹:切,不想上班,假期能不能重来一遍啊,虽然在家我妈张罗着要给我相亲呢。可是在家还是很好的啊。
    2哥 : 相亲?哈哈哈哈
    3妹:别笑了,我妈说跟我年龄相等的人都已经孩子上小学了,跟她年龄相等的人孙子最少都会打酱油了。
    2哥 :哈哈哈哈,让我先笑一会儿
    3妹:话说2哥过年在家里也刷题吗?
    2哥:当然了,雷打不动。
    3妹:好吧,还得是2哥🐂,我有几天懈怠了。
    2哥:好吧,说到刷题啊,今天有一道“二叉树”的题目, 让我们先做一下吧~

    吃瓜

    题目:

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

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

    示例 1:


    image.png

    输入:root = [1,null,3,2,4,null,5,6]
    输出:[1,3,5,6,2,4]
    示例 2:


    image.png
    输入:root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
    输出:[1,2,3,6,7,11,14,4,8,12,5,9,13,10]

    提示:

    节点总数在范围 [0, 10^4]内
    0 <= Node.val <= 10^4
    n 叉树的高度小于或等于 1000

    思路:

    思考

    递归,
    思路比较简单,N 叉树的前序遍历与二叉树的前序遍历的思路和方法基本一致,可以参考「144. 二叉树的前序遍历」的方法,每次递归时,先访问根节点,然后依次递归访问每个孩子节点即可。

    java代码:

    /*
    // 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> res = new ArrayList<>();
            helper(root, res);
            return res;
        }
    
        public void helper(Node root, List<Integer> res) {
            if (root == null) {
                return;
            }
            res.add(root.val);
            for (Node ch : root.children) {
                helper(ch, res);
            }
        }
    }
    
    

    相关文章

      网友评论

          本文标题:【教3妹学编程-算法题】N 叉树的前序遍历

          本文链接:https://www.haomeiwen.com/subject/ugmuadtx.html