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;
        }
    }
  • 相关阅读:

    logging 模块和日志
    re 模块和正则表达式
    collections 模块
    hashlib 模块
    序列化 json 和 pickle
    C++之以分隔符的形式获取字符串
    读取配置文件所在路径时的一种常见错误
    char和achar互转
    C++之ARX,Acstring,ACahr转char
  • 原文地址:https://www.cnblogs.com/ziytong/p/13051681.html
Copyright © 2011-2022 走看看