题目描述
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
例如,以下二叉树层次遍历的结果为:1,2,3,4,5,6,7
package cn.cqu.edu;
import java.util.ArrayList;
import java.util.Queue;
import java.util.concurrent.LinkedBlockingQueue;
public class FromTopToBottom {
class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}
public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
if(root==null)
{
return null;
}
Queue<TreeNode> queue=new LinkedBlockingQueue<>();
queue.add(root);
ArrayList<Integer> array=new ArrayList<Integer>();
while(!queue.isEmpty())
{
TreeNode node=queue.poll();
array.add(node.val);
if(node.left!=null)
{
queue.add(node.left);
}
if(node.right!=null)
{
queue.add(node.right);
}
}
return array;
}
public static void main(String[] args) {
}
}