题解 | #把二叉树打印成多行#
把二叉树打印成多行
http://www.nowcoder.com/practice/445c44d982d04483b04a54f298796288
import java.util.*;
/*
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> > thelist= new ArrayList<ArrayList<Integer> >();
if(pRoot==null) return thelist;
Queue<TreeNode> queue=new LinkedList<TreeNode>();//队列用来BFS遍历树
queue.offer(pRoot);//1.把根节点放进去。包括left和right 放进去的是一个地址
while(!queue.isEmpty()){//2.判断队空
ArrayList<Integer> list=new ArrayList<Integer>();//3.用来存储每一层
int size=queue.size();//4.队中有几个元素
for(int i=0;i<size;i++){
TreeNode temp=queue.poll();//5.队头出队
list.add(temp.val);//6.加到该层的list中
if(temp.left!=null) queue.offer(temp.left);//7.左子树入队
if(temp.right!=null) queue.offer(temp.right);//8.右子树入队 继续转到2进行判断
}
thelist.add(list);
}
return thelist;
}
}
顺丰集团工作强度 382人发布
查看3道真题和解析