把二叉树打印成多行
题目描述:从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。
实现语言:Java
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; } } */ public class Solution { ArrayList<ArrayList<Integer> > Print(TreeNode root) { ArrayList<ArrayList<Integer>> res=new ArrayList<ArrayList<Integer>>(); if(root==null){ return res; } LinkedList<TreeNode> que=new LinkedList<TreeNode>(); que.offer(root); int curNode=1; ArrayList<Integer> list=new ArrayList<Integer>(); while(!que.isEmpty()){ root=que.poll(); --curNode; if(root.left!=null){ que.offer(root.left); } if(root.right!=null){ que.offer(root.right); } list.add(root.val); if(curNode==0){ curNode=que.size(); res.add(list); list=new ArrayList<Integer>(); } } return res; } }