从上往下打印二叉树
就是二叉树的层次遍历,使用一个队列来维持。
实现代码:
import java.util.*; /** public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } */ public class Solution { ArrayList<Integer> ret; Queue<TreeNode> queue; public Solution() { ret = new ArrayList<Integer>(); queue = new LinkedList<TreeNode>(); } public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) { if(root == null) return ret; queue.offer(root); while(!queue.isEmpty()) { TreeNode node = queue.poll(); ret.add(node.val); //左子节点入队 if(node.left != null) { queue.offer(node.left); } //右节点入队 if(node.right != null) { queue.offer(node.right); } } return ret; } }
吐槽一下:牛客网的代码模板和后台调用写的真烂。
作者:Pickle
声明:对于转载分享我是没有意见的,出于对博客园社区和作者的尊重一定要保留原文地址哈。
致读者:坚持写博客不容易,写高质量博客更难,我也在不断的学习和进步,希望和所有同路人一道用技术来改变生活。觉得有点用就点个赞哈。
![](https://images2015.cnblogs.com/blog/735119/201701/735119-20170111112835275-168981902.gif)
![](https://images2015.cnblogs.com/blog/735119/201701/735119-20170111112841431-2047172832.jpg)
![](https://images2015.cnblogs.com/blog/735119/201701/735119-20170111112847494-1544911856.jpg)
![](https://images2015.cnblogs.com/blog/735119/201701/735119-20170111112904385-918783221.jpg)
![](https://images2015.cnblogs.com/blog/735119/201701/735119-20170111120143119-1302805212.jpg)
![](https://images2015.cnblogs.com/blog/735119/201701/735119-20170111112856369-1466718103.jpg)
![](https://images2015.cnblogs.com/blog/735119/201701/735119-20170111112830416-794416355.jpg)
![](https://images2015.cnblogs.com/blog/735119/201701/735119-20170111113919510-1155220901.gif)