zoukankan      html  css  js  c++  java
  • Java实现 LeetCode 107 二叉树的层次遍历 II(二)

    107. 二叉树的层次遍历 II

    给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)

    例如:
    给定二叉树 [3,9,20,null,null,15,7],

        3
       / 
      9  20
        /  
       15   7
    

    返回其自底向上的层次遍历为:

    [
    [15,7],
    [9,20],
    [3]
    ]

     
    class Solution {
         public List<List<Integer>> levelOrderBottom(TreeNode root) {
            LinkedList<List<Integer>> result = new LinkedList<>();
            if (root == null)
                return result;
            Queue<TreeNode> queue = new LinkedList<>();
            queue.add(root);
            while (!queue.isEmpty()) {
                List<Integer> oneLevel = new ArrayList<>();
                // 每次都取出一层的所有数据
                int count = queue.size();
                for (int i = 0; i < count; i++) {
                    TreeNode node = queue.poll();
                    oneLevel.add(node.val);
                    if (node.left != null)
                        queue.add(node.left);
                    if (node.right != null)
                        queue.add(node.right);
                }
                // 每次都往队头塞
                result.addFirst(oneLevel);
            }
            return result;
        }
    }
    
  • 相关阅读:
    VS2010 添加项目依赖
    人工鱼群算法 AFSA
    粒子群算法 PSO
    CUDA速度测试
    AGSO 萤火虫算法
    用于WTL工具栏的辅助类CToolBarHelper
    关于结构体内存对齐
    遗传算法 GA
    A*算法
    人工蜂群算法 ABC
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13075548.html
Copyright © 2011-2022 走看看