思路

如标题所示,层序遍历二叉树,二叉树遍历有4种,前中后根 再加上 层序遍历二叉树
前三种可以递归,层序遍历二叉树不能递归,一般的使用一个Queue,队列从左往后存储每一层数据
层序遍历有一些变种,比如之字型打印,用一个奇偶数标记一下打印方向。
本题全部一个方向,就直接用一个queue依次添加,不需要额外建一个queue存储下一层结点,而之字形需要,这样可以打印完一层又一层

代码

import java.util.*;
public class Solution {
    public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
        ArrayList<Integer> arr=new ArrayList<>();
        if(root==null){return arr;}
        Queue<TreeNode> deque=new LinkedList<>();
        deque.add(root);
        while(!deque.isEmpty()){
            TreeNode temp=deque.poll();
            arr.add(temp.val);
            if(temp.left!=null){deque.add(temp.left);}
            if(temp.right!=null){deque.add(temp.right);}
        }
        return arr;
    }
}