关闭

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

标签: 数据结构二叉树剑指offer-java实现牛客网在线编程
400人阅读 评论(0) 收藏 举报
分类:

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


思路:二叉树的层次遍历


import java.util.ArrayList;

/**
public class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;

    public TreeNode(int val) {
        this.val = val;

    }

}
*/
public class Solution {
    public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
        ArrayList<Integer> arrayList = new ArrayList<>();
        ArrayList<TreeNode> queue = new ArrayList<>();
        if ( root == null){
            return arrayList;
        }

        queue.add(root);
        for ( int i = 0 ; i < queue.size() ; i++){
            TreeNode node = queue.get(i);
            if ( node.left != null){
                queue.add(node.left);
            }
            if ( node.right != null){
                queue.add(node.right);
            }
            arrayList.add(node.val);
        }

        return arrayList;
    }
}
0
0
查看评论

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

题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 /* public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode...
  • kangaroo835127729
  • kangaroo835127729
  • 2015-04-11 20:21
  • 539

《剑指offer》之从上往下打印二叉树

题目:从上往下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印,例如图,则依次打印出8,6,10,5,7,9,11. 分析:在学习数据结构的时候,我们学习了二叉树的三种遍历方式:前序,中序,后续遍历,可是没有一种是可以像题目中所要求的打印方式,这就要用到辅助工具了,我们知道队列是一个先进先...
  • lqgzfl
  • lqgzfl
  • 2015-08-22 01:22
  • 1175

剑指Offer:面试题23——从上往下打印二叉树(java实现)

问题描述: 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 思路: 按照层次遍历的方法,使用队列辅助。 1.将根结点加入队列。 2.循环出队,打印当前元素,若该结点有左子树,则将其加入队列,若有右子树,将其加入队列。 3.直到队列为空,表明已经打印完所有结点。 代码...
  • lilianforever
  • lilianforever
  • 2016-07-07 15:03
  • 1018

剑指Offer面试题23(Java版):从上往下打印二叉树

题目:从上往下打印二叉树的每个结点,同一层的结点按照从左到右的顺序打印。例如输入下图的二叉树,则一次打印出8,6,10,5,7,9,11. 这道题实质上考察的就是树的遍历算法,只是这种遍历不是我们熟悉的前序、中序或者后序遍历。由于我们不太熟悉这种按层遍历的方法,可能已下载也想不清楚遍历的过...
  • jsqfengbao
  • jsqfengbao
  • 2015-08-03 20:41
  • 2236

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

 1、题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 2、思路 利用队列做结点容器,递归的打印出当前结点,当前结点的左节点以及当前结点的右结点。 3.代码如下 import java.util.ArrayList; import java.util.Queue; ...
  • g1607058603
  • g1607058603
  • 2018-02-05 10:41
  • 3

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

package offer; /** * 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 */ import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue;/** public class...
  • Joseph_Geeker
  • Joseph_Geeker
  • 2017-04-13 18:54
  • 134

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

题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 解析: 这是二叉树的层次遍历,借助于一个队列可以实现。首先将根节点入队列,然后队列首元素出队列,打印该节点的值。若该节点有左孩子结点则将左孩子结点入队列,若该节点有右孩子节点则将右孩子节点入队列。直到队列为空。 代码如下:...
  • qq_22238021
  • qq_22238021
  • 2017-09-29 15:33
  • 45

剑指offer-22.从上往下打印二叉树

题目:从上往下打印出二叉树的每个节点,同层节点从左至右打印。 思路:二叉树的层次遍历,利用一个队列辅助即可,当时有思考过用栈的,后来想了一下发现栈的特点事后进先出,不符合要求,而队列的特点是先进先出,故借用队列。 /* struct TreeNod...
  • I_love_blog
  • I_love_blog
  • 2017-04-28 19:53
  • 123

剑指Offer_22_从上往下打印二叉树

题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 解题思路 此题是树的层次变量,使用队列保存当前变量结点的左右孩子,循环遍历,直到队列为空。
  • ggmfengyangdi
  • ggmfengyangdi
  • 2016-08-16 10:18
  • 105

剑指offer--面试题23:从上往下打印二叉树

 题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 python实现: # -*- coding:utf-8 -*- # class TreeNode: #     def __init__(self, x): # ...
  • qingyujean
  • qingyujean
  • 2016-09-27 17:49
  • 114
    个人资料
    • 访问:155589次
    • 积分:4929
    • 等级:
    • 排名:第6843名
    • 原创:329篇
    • 转载:0篇
    • 译文:0篇
    • 评论:80条
    博客专栏
    最新评论