思路
如标题所示,层序遍历二叉树,二叉树遍历有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;
}
} 
京公网安备 11010502036488号