• 【每日一题-leetcode】429.N叉数的层序遍历


    429.N叉数的层序遍历

    1. N叉树的层序遍历

    难度中等76

    给定一个 N 叉树,返回其节点值的层序遍历。 (即从左到右,逐层遍历)。

    例如,给定一个 3叉树 :

    返回其层序遍历:

    [
         [1],
         [3,2,4],
         [5,6]
    ]
    

    1.队列实现广度优先搜索

    time:O(n)

    space:O(n)

    //1.用队列实现广度优先搜索
        //2.一个list 一个queue  list存储节点的值  queue存储每一层遍历的节点。
        //3.当queue != null 的时候,遍历当前层。
        public List<List<Integer>> levelOrder(Node root) {
            if(root == null) return new ArrayList();
            List<List<Integer>> list = new ArrayList<>();
            Queue<Node> queue = new LinkedList();//存储每一层的结点值
            queue.add(root);
            while(!queue.isEmpty()){
                List<Integer> level = new ArrayList<>();
                int size = queue.size();
                for(int i=0;i<size;i++){
                    Node node = queue.poll();
                    level.add(node.val);
                    queue.addAll(node.children);
                }
                list.add(level);
            }
            return list;
        }
    
  • 相关阅读:
    1021 个位数统计
    1020 月饼
    1019 数字黑洞
    1018 锤子剪刀布
    1017 A除以B
    1016 部分A+B
    1015 德才论
    1014 福尔摩斯的约会
    cocos2d 间隔动作
    cocos2d 瞬时动作
  • 原文地址:https://www.cnblogs.com/qxlxi/p/12860641.html
Copyright © 2020-2023  润新知