zoukankan      html  css  js  c++  java
  • Leetcode 429 N叉树的层序遍历

    题目定义:

    给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。
    树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)。
    

    img

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

    img

    输入: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,4,5],[6,7,8,9,10],[11,12,13],[14]]
    

    方式一(层序遍历):

    class Solution {
        public List<List<Integer>> levelOrder(Node root) {
            List<List<Integer>> ans = new ArrayList<>();
            if(root == null)
                return ans;
            Queue<Node> queue = new ArrayDeque<>();
            queue.offer(root);
            while(!queue.isEmpty()){
                int size = queue.size();
                List<Integer> level = new ArrayList<>();
                for(int i = 0; i < size; i++){
                    Node node = queue.poll();
                    level.add(node.val);
                    for(Node child : node.children){
                        queue.offer(child);
                    }
                }
                ans.add(level);
            }
            return ans;
        }
    }
    

    方式二(dfs + 给定层次):

    class Solution {
        private List<List<Integer>> ans = new ArrayList<>();
        public List<List<Integer>> levelOrder(Node root) {
            if(root != null)
                dfs(root,0);
            return ans;
        }
        private void dfs(Node root,int level){
            if(root == null)
                return;
            if(ans.size() <= level){
                ans.add(new ArrayList<Integer>());
            }
            ans.get(level).add(root.val);
            for(Node child : root.children){
                dfs(child,level + 1);
            }
        }
    }
    
  • 相关阅读:
    如何面试测试工程师?
    自动登录VSS
    软件质量浅谈
    如何在工作中更好的学习
    用例设计工具PICT — 输入组合覆盖
    如何提高送测版本的质量?
    Findbugs介绍及使用方法
    省市区三级联动(附数据库和导入模板的做法)
    EF-联合查询-结果集-Group by-统计数目
    WCF-复合类型使用;传输图片
  • 原文地址:https://www.cnblogs.com/CodingXu-jie/p/14446637.html
Copyright © 2011-2022 走看看