博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
剑指offer66之从上往下打印二叉树(Java)
阅读量:3754 次
发布时间:2019-05-22

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

题目描述

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

解题思路

就是二叉树的层序遍历。借助一个队列就可以实现。
使用两个队列一个存放节点,一个存放值。先将根节点加入到队列中,然后遍历队列中的元素,遍历过程中,访问该元素的左右节点,再将左右子节点加入到队列中来。
注意Queue创建的方式:Queue queue = new LinkedList();
用add将元素添加到队列中,用remove来移除并返回队首元素。

如果看不懂思路,可以阅读如下博客,写的很详细:

参考代码:

import java.util.ArrayList;import java.util.Queue;import java.util.LinkedList;/**public class TreeNode {    int val = 0;    TreeNode left = null;    TreeNode right = null;    public TreeNode(int val) {        this.val = val;    }}*/public class Solution {    public ArrayList
PrintFromTopToBottom(TreeNode root) { ArrayList
res = new ArrayList<>(); if(root == null) return res; Queue
queue = new LinkedList
(); queue.add(root); while(queue.size() != 0){ root = queue.remove(); res.add(root.val); if(root.left != null){ queue.add(root.left); } if(root.right != null){ queue.add(root.right); } } return res; }}

转载地址:http://ttssn.baihongyu.com/

你可能感兴趣的文章
MySQL实战续(二)
查看>>
安装Elastic和kibana
查看>>
什么是搜索
查看>>
全文检索工具elasticsearch
查看>>
Vue之条件渲染实战
查看>>
Vue之侦听属性
查看>>
求职指南(1)
查看>>
MySQL day11
查看>>
MySQL day12
查看>>
JSONP原理
查看>>
Vue.js学习笔记—插值的操作(1)
查看>>
CSS的四种方式实现水平居中
查看>>
RISC-V生态架构浅析(认识RISC-V)
查看>>
? 精美图文带你掌握 JVM 内存布局
查看>>
谈谈go.sum
查看>>
tls 1.2 example
查看>>
GitHub 计划登陆中国,将产生哪些影响与意义?
查看>>
2019 我是怎样熬过来的?
查看>>
【C++学习计划】深入浅出——变量作用域(Day3)
查看>>
策略模式
查看>>