LintCode 二叉树的层次遍历 II题目代码

题目

给出一棵二叉树,返回其节点值从底向上的层次序遍历(按从叶节点所在层到根节点所在的层遍历,然后逐层从左往右遍历)

样例 给出一棵二叉树 {3,9,20,#,#,15,7},

Paste_Image.png

代码

/**
 * Definition of TreeNode:
 * public class TreeNode {
 *     public int val;
 *     public TreeNode left, right;
 *     public TreeNode(int val) {
 *         this.val = val;
 *         this.left = this.right = null;
 *     }
 * }
 */
 
 
public class Solution {
    /**
     * @param root: The root of binary tree.
     * @return: buttom-up level order a list of lists of integer
     */
    public ArrayList<ArrayList<Integer>> levelOrderBottom(TreeNode root) {
        // write your code here
        if(root == null)
            return new ArrayList<>();
        
        ArrayList<ArrayList<Integer>> res = new ArrayList<>();
        
        Queue<TreeNode> list = new LinkedList<>();
        
        list.offer(root);
        
        while(!list.isEmpty()) {
            int size = list.size();
            ArrayList<Integer> level = new ArrayList<>();
            for(int i=0;i<size;i++) {
                TreeNode cur = list.poll();
                level.add(cur.val);
                if(cur.left != null)
                    list.offer(cur.left);
                if(cur.right != null)
                    list.offer(cur.right);
            }
            res.add(level);
        }
        Collections.reverse(res);
        return res;
    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏张俊红

数据结构—树与二叉树

之前谈到的线性表、栈和队列都是一对一的数据结构,但是现实中也存在很多一对多的数据结构,这篇要写的就是一种一对多的数据结构———树。全文分为如下几部分:

1173
来自专栏书山有路勤为径

二叉树基础知识

树是n(n>=0)个节点的有限集,且这些节点满足如下关系: (1)有且仅有一个节点没有父结点,该节点称为树的根。 (2)除根外,其余的每个节点都有且仅有一个...

732
来自专栏desperate633

LeetCode Maximum Depth of Binary Tree题目分析代码

Given a binary tree, find its maximum depth.

631
来自专栏武培轩的专栏

Leetcode#104. Maximum Depth of Binary Tree(二叉树的最大深度)

1442
来自专栏desperate633

LintCode 平衡二叉树题目分析代码

给定一个二叉树,确定它是高度平衡的。对于这个问题,一棵高度平衡的二叉树的定义是:一棵二叉树中每个节点的两个子树的深度相差不会超过1。

722
来自专栏武培轩的专栏

剑指Offer-按之字形顺序打印二叉树

package Tree; import java.util.ArrayList; import java.util.LinkedList; import j...

2834
来自专栏武培轩的专栏

剑指Offer-二叉树的镜像

package Tree; import java.util.ArrayDeque; import java.util.ArrayList; import j...

3334
来自专栏尾尾部落

[剑指offer] 二叉树的深度

输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。

872
来自专栏weixuqin 的专栏

数据结构学习笔记(树、二叉树)

2623
来自专栏章鱼的慢慢技术路

笔试常考题型之二叉树的遍历

1585

扫码关注云+社区

领取腾讯云代金券