思路
如标题所示,层序遍历二叉树,二叉树遍历有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; } }