Offer-NO60.把二叉树打印成多行
把二叉树打印成多行
http://www.nowcoder.com/questionTerminal/445c44d982d04483b04a54f298796288
题目描述
从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。
示例1
输入
{8,6,10,5,7,9,11}
返回值
[[8],[6,10],[5,7,9,11]]
ArrayList<ArrayList<Integer> > Print(TreeNode root) { ArrayList<ArrayList<Integer>> res = new ArrayList(); if(root==null) return res; Queue<TreeNode> queue= new LinkedList(); queue.offer(root); while(!queue.isEmpty()){ int size = queue.size();//一行的所有元素 ArrayList<Integer> list = new ArrayList<Integer>(); while(size>0){ TreeNode node = queue.poll(); list.add(node.val); if(node.left!=null) queue.offer(node.left);//使用的是队列,先进先出 if(node.right!=null) queue.offer(node.right);//先左后右 size--; } res.add(list);//一行的数据加入到结果集 } return res; }