剑指offer_二叉树---从上往下打印二叉树

简介: 剑指offer_二叉树---从上往下打印二叉树

题目描述

从上往下打印出二叉树的每个节点,同层节点从左至右打印。

解题思路

二叉树的层序遍历,用一个队列来实现

代码

/**
 * 
 */
package offerTest;
import java.util.ArrayList;
import java.util.LinkedList;
/**
 * <p>
 * Title:PrintFromTopToBottom
 * </p>
 * <p>
 * Description:
 * </p>
 * 
 * @author 田茂林
 * @data 2017年8月20日 下午9:15:55
 */
public class PrintFromTopToBottom {
    public ArrayList<Integer> ListPrintFromTopToBottom(TreeNode root) {
        ArrayList<Integer> list = new ArrayList<Integer>();
        LinkedList<TreeNode> queue = new LinkedList<TreeNode>();
        if (root == null) {
            return list;
        }
        queue.offer(root);
        while (!queue.isEmpty()) {
            TreeNode current = queue.poll();
            list.add(current.val);
            if (current.left != null) {
                queue.offer(current.left);
            }
            if (current.right != null) {
                queue.offer(current.right);
            }
        }
        return list;
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
    }
}


相关文章
|
存储 JSON 搜索推荐
鸿蒙5开发宝藏案例分享---自由流转的拖拽多屏联动
本文分享了鸿蒙开发中的五大实用案例,包括页面跳转、列表渲染、网络请求封装、数据持久化和系统能力调用。通过具体代码示例与避坑指南,手把手教你掌握常用功能,助你高效开发。无论是初学者还是进阶开发者,都能从中受益!
|
计算机视觉
图像处理之给定任意四点不规则放缩
图像处理之给定任意四点不规则放缩
78 3
|
Java Python
pymalloc 如何减少内存碎片?
pymalloc 如何减少内存碎片?
123 1
|
监控 数据可视化 Unix
自用的Linux命令高效的4个shell替代工具
这篇文章介绍了几个用于提升Unix系统终端体验的替代工具。首先提到了`oh-my-zsh`,然后重点推荐了三个命令行工具:1) `htop`和`btop`作为`top`命令的增强版,提供更丰富的进程监控视图;2) `duf`作为`df`命令的替代,以更整洁的界面显示磁盘空间使用情况;3) `eza`(原`exa`)和`bat`,这两个工具为`ls`和`cat`命令提供了颜色高亮和更好的文件查看体验。这些工具旨在使终端操作更加直观和愉快。
331 0
|
存储 SQL 关系型数据库
132.【MySQL_进阶】(四)
132.【MySQL_进阶】
135 0
|
网络协议 安全 网络安全
openWRT SFTP 实现远程文件安全传输
openWRT SFTP 实现远程文件安全传输
|
算法 Java C++
【数据结构和算法】盛最多水的容器
给定一个长度为n的整数数组height。有n条垂线,第i条线的两个端点是(i, 0)和(i, height[i])。 找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明:你不能倾斜容器。
120 2
【数据结构和算法】盛最多水的容器
|
存储 关系型数据库 MySQL
MySQL长文本字段的选
MySQL长文本字段的选
246 0
MySQL长文本字段的选
|
机器学习/深度学习 人工智能 语音技术
重温经典:台大李宏毅的线性代数公开课
重温经典:台大李宏毅的线性代数公开课
重温经典:台大李宏毅的线性代数公开课
|
JavaScript 前端开发
说说你对事件循环的理解(event loop)
说说你对事件循环的理解(event loop)