剑指Offer——树的子结构从上往下打印二叉树
1、题目描述
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
2、代码实现
package com.baozi.offer; import java.util.ArrayList; import java.util.LinkedList; /** * 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 * * @author BaoZi * @create 2019-07-12-16:14 */ public class Offer19 { public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) { ArrayList<Integer> list = new ArrayList<>(); if (root == null) { return list; } //相当于是二叉树的层序遍历,需要借助于一个队列的数据结构 LinkedList<TreeNode> queue = new LinkedList<TreeNode>(); //先把树的根节点存入队列中 queue.add(root); while (!queue.isEmpty()) { TreeNode temp = queue.pop(); list.add(temp.val); if (temp.left != null) { queue.add(temp.left); } if (temp.right != null) { queue.add(temp.right); } } return list; } }