题目描述 从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; //结点结构 public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } public class Solution { ArrayList<ArrayList<integer>> Print(TreeNode pRoot) { ArrayList<ArrayList<integer>> list = new ArrayList<ArrayList<integer>>(); if(pRoot==null){ return list; } Queue<treenode> q = new LinkedList<treenode>(); q.add(pRoot); while(!q.isEmpty()){ int len = q.size(); ArrayList<integer> tem = new ArrayList<integer>(); while(len-->0){ TreeNode p = q.poll(); if(p.left!=null){ q.add(p.left); } if(p.right!=null){ q.add(p.right); } tem.add(p.val); } list.add(tem); } return list; } }