zoukankan      html  css  js  c++  java
  • 107. 二叉树的层次遍历 II

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

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

    3
    /
    9 20
    /
    15 7
    返回其自底向上的层次遍历为:

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

    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode(int x) { val = x; }
     * }
     */
    class Solution {
        public List<List<Integer>> levelOrderBottom(TreeNode root) {
            List<List<Integer>> ans = new ArrayList<>();  // 创建一个新的数组
            if (root == null)
            {
                return ans;  //如果数组为空,返回空数组链表
            }
            // 创建一个树队列
            Queue<TreeNode> q = new LinkedList<>();
    
            q.add(root);
    
            while(!q.isEmpty())
            {
                List<Integer> tmp = new ArrayList<>();  //创建一个整数型数组链表
    
                int len = q.size();  //取q的尺寸
    
                //为了循环弹出来
                for (int i = 0; i < len; i++)
                {
                    TreeNode node = q.poll();
                    tmp.add(node.val);
    
                    if (node.left != null)
                    {
                        q.add(node.left);
                    }
                    if (node.right != null)
                    {
                        q.add(node.right);
                    }
                }
                // 在索引0的位置加入一位数组 tmp,每次新的数组进来都会被放在开始的位置
                ans.add(0,tmp);
            }
            return ans;
        }
    }
  • 相关阅读:
    redis-LinkedList
    Jedis(java操作redis数据库技术)
    jquery判断表单内容是否为空
    jQuery单选框的回显
    使用jQuery重置(reset)表单的方法
    BootstrapValidator 解决多属性被同时校验问题
    模态框被遮罩层遮挡
    python 高阶函数
    python 函数式编程
    python 生成器
  • 原文地址:https://www.cnblogs.com/ziytong/p/13051681.html
Copyright © 2011-2022 走看看