public class PrintFromTopToBottomDemo {
public ArrayList<Integer> printFromTopToBottom(TreeNode root){
//创建返回的集合
ArrayList<Integer> arrayList = new ArrayList<>();
//创建要借助的队列
LinkedList<TreeNode> linkedList = new LinkedList<>();
//如果node为空,则返回
if(root==null){
return arrayList;
}
//首先把根节点加入链表
linkedList.offer(root);
while(!linkedList.isEmpty()){
TreeNode poll = linkedList.poll();
//把根节点的值加入集合
arrayList.add(poll.val);
if(poll.left!=null){
linkedList.offer(poll.left);
}
if(poll.rigth!=null){
linkedList.offer(poll.rigth);
}
}
return arrayList;
}
可以借助队列的特性——先进先出来实现二叉树的从上到下打印