博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
剑指:不分行从上往下打印二叉树
阅读量:4494 次
发布时间:2019-06-08

本文共 1165 字,大约阅读时间需要 3 分钟。

题目描述

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

 

样例:

8       /  \     6    10   /  \    / \  5    7  9  11 输出:8、6、10、5、7、9、11

 

解法

借助队列先进先出的特性,

先将根节点进入队列。

队头元素出队,将值存入 list,判断该元素是否有左/右子树,有的话依次进入队列中。队列为空时结束。

 

代码实现:

import java.util.ArrayList;import java.util.LinkedList;import java.util.Queue;/** public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } */public class Solution {    /**     * 从上到下打印二叉树     * @param root 二叉树根节点     * @return 结果list     */    public ArrayList
PrintFromTopToBottom(TreeNode root) { ArrayList
list = new ArrayList<>(); if (root == null) { return list; } Queue
queue = new LinkedList<>(); queue.offer(root); while (!queue.isEmpty()) { TreeNode node = queue.poll(); if (node.left != null) { queue.offer(node.left); } if (node.right != null) { queue.offer(node.right); } list.add(node.val); } return list; }}

 

转载于:https://www.cnblogs.com/lisen10/p/11197577.html

你可能感兴趣的文章
eclipse自动编译
查看>>
SVN里的一些细小概念
查看>>
iOS9 HTTP请求失败
查看>>
一个开发环境遇到的问题
查看>>
Meet in the middle学习笔记
查看>>
autocad.net 利用linq获取矩形框内的块参照
查看>>
过滤动态块
查看>>
FastJSON学习
查看>>
【JavaWeb】DbUtils入门之QueryRunner
查看>>
dblink的使用
查看>>
实验报告
查看>>
linux后台运行
查看>>
(转)浅谈分布式
查看>>
Chrome扩展移植到Edge浏览器教程
查看>>
mysql分表的3种方法(转)
查看>>
eclipse格式化代码样式
查看>>
asp uploadify示例下载
查看>>
1/7 第一篇 变量的内存实质
查看>>
jQuery遮罩插件jQuery.blockUI.js简介
查看>>
MaskedTextBox控件实现输入验证
查看>>