知识点:二叉树,队列,层次遍历
import java.util.ArrayList;
import java.util.ArrayDeque;
public class Solution {
public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
ArrayList<Integer> arr = new ArrayList<Integer>();
if(root==null)
return arr;
ArrayDeque<TreeNode> dq = new ArrayDeque<TreeNode>();
dq.addLast(root);
while(!dq.isEmpty()){
int curSize = dq.size();//当前层的结点数
while(curSize-->0){
TreeNode p = dq.pollFirst();//取出队列头
arr.add(p.val);//将结点值添加到数目中
if(p.left!=null)//如果左结点不为空
dq.addLast(p.left);//添加到队列尾
if(p.right!=null)//如果右结点不为空
dq.addLast(p.right);//添加到队列尾
}
}
return arr;
}
}