topic
Printing the binary tree in layers from top to bottom, from left to right with the output layer node. Each line of output layer.
Thinking
1. Direct comparison line printing binary tree from left to right line by line can then again with ArrayList package can be nested.
Code
import java.util.ArrayList;
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>> ret = new ArrayList<ArrayList<Integer>>();
Queue<TreeNode> queue = new LinkedList<TreeNode>();
if(pRoot==null){
return ret;
}
queue.offer(pRoot);
while(!queue.isEmpty()){
ArrayList<Integer> res = new ArrayList<Integer>();
int count = queue.size();
while(count-->0){
TreeNode node = queue.poll();
if(node==null) continue;
res.add(node.val);
queue.offer(node.left);
queue.offer(node.right);
}
if(res.size()!=0){
ret.add(res);
}
}
return ret;
}
}