每天一道剑指offer-从上往下打印二叉树
- 2019 年 10 月 4 日
- 筆記
前言
今天的题目 每天的题目见github(看最新的日期): https://github.com/gzc426 具体的题目可以去牛客网对应专题去找。
题目
每天一道剑指offer-从上往下打印二叉树 来源:牛客网对应专题
题目详述
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
题目详解
思路
- 使用一个队列,实现二叉树的层次遍历
代码
public class Solution { public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) { ArrayList<Integer> resultList = new ArrayList<>(); if(root == null) return resultList; Queue<TreeNode> queue = new LinkedList<>(); queue.offer(root); while(queue.size() != 0)//队列不为空一直进行 { TreeNode tempRoot = queue.poll();//出队 if(tempRoot.left != null)//左子节点不为空,左子节点入队 queue.offer(tempRoot.left); if(tempRoot.right != null)//右子节点不为空,右子节点入队 queue.offer(tempRoot.right); resultList.add(tempRoot.val);//把出队的节点的值保留下来 } return resultList; } }
代码截图(避免乱码)