题目描述:
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
import java.util.ArrayList; import java.util.LinkedList; /** public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } */ //采用 list保存打印的数组序列 //采用队列保存树的结点信息 public class Solution { public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) { LinkedList<TreeNode> qeue=new LinkedList<>(); //保存树的结点信息 ArrayList<Integer> list=new ArrayList<>(); //保存打印出来的val if(root==null){ return list; } qeue.add(root); //先将根结点放进队列 while(qeue.size()!=0){ TreeNode tree=qeue.remove(); //当前结点 if(tree.left!=null){ //放当前结点的左孩子进队列 qeue.add(tree.left); } if(tree.right!=null){ //放当前结点的右孩子进队列 qeue.add(tree.right); } list.add(tree.val); //放数值进 list } return list; } }